1/*
2 * L4_MABX.c
3 *
4 * Code generation for model "L4_MABX".
5 *
6 * Model version : 1.845
7 * Simulink Coder version : 8.14 (R2018a) 06-Feb-2018
8 * C source code generated on : Wed Aug 28 10:31:29 2019
9 *
10 * Target selection: rti1401.tlc
11 * Note: GRT includes extra infrastructure and instrumentation for prototyping
12 * Embedded hardware selection: Custom Processor->Custom
13 * Code generation objectives: Unspecified
14 * Validation result: Not run
15 */
16
17#include "L4_MABX_trc_ptr.h"
18#include "L4_MABX.h"
19#include "L4_MABX_private.h"
20
21/* Named constants for Chart: '<S79>/Chart' */
22#define L4_MABX_IN_Init ((uint8_T)1U)
23#define L4_MABX_IN_NO_ACTIVE_CHILD ((uint8_T)0U)
24#define L4_MABX_IN_OperatorDisabled ((uint8_T)2U)
25#define L4_MABX_IN_OperatorEnabled ((uint8_T)3U)
26
27/* Named constants for Chart: '<S205>/Relay_control_state_machine' */
28#define L4_MABX_IN_IGN_RELAY_LATCH ((uint8_T)1U)
29#define L4_MABX_IN_IGN_RELAY_UNLATCH ((uint8_T)1U)
30#define L4_MABX_IN_INITIAL ((uint8_T)1U)
31#define L4_MABX_IN_INV_RELAY_LATCH ((uint8_T)2U)
32#define L4_MABX_IN_INV_RELAY_UNLATCH ((uint8_T)2U)
33#define L4_MABX_IN_MABX_RELAY_LATCH ((uint8_T)3U)
34#define L4_MABX_IN_MABX_RELAY_UNLATCH ((uint8_T)3U)
35#define L4_MABX_IN_POWER_DOWN_ROUTINE ((uint8_T)2U)
36#define L4_MABX_IN_POWER_UP_ROUTINE ((uint8_T)3U)
37#define L4_MABX_IN_SENSOR_RELAY_LATCH ((uint8_T)4U)
38#define L4_MABX_IN_SENSOR_RELAY_UNLATCH ((uint8_T)4U)
39#define L4_MABX_IN_WAIT ((uint8_T)5U)
40
41/* Named constants for Chart: '<S276>/Chart' */
42#define L4_MABX_IN_OneLane ((uint8_T)1U)
43#define L4_MABX_IN_OneLane1 ((uint8_T)2U)
44#define L4_MABX_IN_TwoLanes ((uint8_T)3U)
45#define L4_MABX_IN_TwoLanes1 ((uint8_T)4U)
46#define L4_MABX_IN_ZeroLanes ((uint8_T)5U)
47#define L4_MABX_IN_ZeroLanes1 ((uint8_T)6U)
48#define L4_MABX_IN_init_f ((uint8_T)7U)
49
50/* Named constants for Chart: '<S718>/Health State Machine PWM Sensor 1' */
51#define L4_MABX_IN_ERROR ((uint8_T)1U)
52#define L4_MABX_IN_FAILURE_DETECTED ((uint8_T)1U)
53#define L4_MABX_IN_NO_FAILURE ((uint8_T)2U)
54#define L4_MABX_IN_PENDING ((uint8_T)2U)
55
56/* Named constants for Chart: '<S800>/Chart' */
57#define L4_MABX_IN_DiagPassed ((uint8_T)1U)
58#define L4_MABX_IN_SwitchOff ((uint8_T)2U)
59#define L4_MABX_IN_SwitchOn ((uint8_T)3U)
60#define L4_MABX_IN_init_k ((uint8_T)4U)
61
62/* Named constants for Chart: '<S814>/Chart' */
63#define L4_MABX_IN_CheckPacketCount ((uint8_T)1U)
64#define L4_MABX_IN_Init_l ((uint8_T)2U)
65#define L4_MABX_IN_InterframeDelay ((uint8_T)3U)
66#define L4_MABX_IN_InterframeDelay1 ((uint8_T)4U)
67#define L4_MABX_IN_SendTPCM ((uint8_T)5U)
68#define L4_MABX_IN_SendTPDT ((uint8_T)6U)
69#define L4_MABX_IN_StartMsg ((uint8_T)7U)
70#define L4_MABX_IN_WaitForNextPeriod ((uint8_T)8U)
71
72/* Exported block signals */
73real_T GLB_Absolute_Timestamp; /* '<S403>/Rate Transition' */
74real_T ReAX_ActualHandwheelPos; /* '<S429>/Switch' */
75real_T EthernetLinkStatus; /* '<S386>/dsa_tcpip_setup' */
76real_T CurrentAzimuth_rad; /* '<S384>/Switch' */
77real_T TargetAzimuth_rad; /* '<S384>/Switch1' */
78real_T TargetVelocity_kph; /* '<S384>/Switch3' */
79real_T Curvature; /* '<S384>/Switch4' */
80real_T CurrentVelocity_kph; /* '<S384>/Switch2' */
81real_T CrosstrackError; /* '<S384>/Switch5' */
82real_T GPS_X; /* '<S384>/Switch6' */
83real_T GPS_Y; /* '<S384>/Switch7' */
84real_T GPS_Time; /* '<S384>/Switch8' */
85real_T ReAX_EchoedSteerWheelPos; /* '<S429>/Switch' */
86real_T SteerWheelAngle; /* '<S627>/S-Function1' */
87real_T YawRate; /* '<S627>/S-Function1' */
88real_T SPN1810_LongitudinalAcceleration;/* '<S627>/S-Function1' */
89real_T WheelBasedVehicleSpeed; /* '<S492>/S-Function1' */
90real_T BrakeSwitch; /* '<S492>/S-Function1' */
91real_T Lateral_Control_Output; /* '<S274>/Sum1' */
92real_T Lateral_Control_Rate_Limiter_Output;/* '<S299>/If_Then_Else' */
93real_T SteerCommandDeg; /* '<S80>/sign1' */
94real_T DesiredSteeringAngle; /* '<S80>/sign2' */
95uint32_T DIAG_CAN1_Count_Stuff_Errors; /* '<S28>/S-Function1' */
96uint32_T DIAG_CAN1_Count_Format_Errors;/* '<S28>/S-Function1' */
97uint32_T DIAG_CAN1_Count_Ack_Errors; /* '<S28>/S-Function1' */
98uint32_T DIAG_CAN1_Count_Bit0_Errors; /* '<S28>/S-Function1' */
99uint32_T DIAG_CAN1_Count_Bit1_Errors; /* '<S28>/S-Function1' */
100uint32_T DIAG_CAN1_Count_CRC_Errors; /* '<S28>/S-Function1' */
101uint32_T DIAG_CAN1_Count_RX_Lost; /* '<S28>/S-Function1' */
102uint32_T DIAG_CAN1_Count_RX_OK; /* '<S28>/S-Function1' */
103uint32_T DIAG_CAN1_Count_TX_OK; /* '<S28>/S-Function1' */
104uint32_T DIAG_CAN5_Count_Stuff_Errors; /* '<S20>/S-Function1' */
105uint32_T DIAG_CAN5_Count_Format_Errors;/* '<S20>/S-Function1' */
106uint32_T DIAG_CAN5_Count_Ack_Errors; /* '<S20>/S-Function1' */
107uint32_T DIAG_CAN5_Count_Bit0_Errors; /* '<S20>/S-Function1' */
108uint32_T DIAG_CAN5_Count_Bit1_Errors; /* '<S20>/S-Function1' */
109uint32_T DIAG_CAN5_Count_CRC_Errors; /* '<S20>/S-Function1' */
110uint32_T DIAG_CAN5_Count_RX_Lost; /* '<S20>/S-Function1' */
111uint32_T DIAG_CAN5_Count_RX_OK; /* '<S20>/S-Function1' */
112uint32_T DIAG_CAN5_Count_TX_OK; /* '<S20>/S-Function1' */
113uint32_T DIAG_CAN6_Count_Stuff_Errors; /* '<S21>/S-Function1' */
114uint32_T DIAG_CAN6_Count_Format_Errors;/* '<S21>/S-Function1' */
115uint32_T DIAG_CAN6_Count_Ack_Errors; /* '<S21>/S-Function1' */
116uint32_T DIAG_CAN6_Count_Bit0_Errors; /* '<S21>/S-Function1' */
117uint32_T DIAG_CAN6_Count_Bit1_Errors; /* '<S21>/S-Function1' */
118uint32_T DIAG_CAN6_Count_CRC_Errors; /* '<S21>/S-Function1' */
119uint32_T DIAG_CAN6_Count_RX_Lost; /* '<S21>/S-Function1' */
120uint32_T DIAG_CAN6_Count_RX_OK; /* '<S21>/S-Function1' */
121uint32_T DIAG_CAN6_Count_TX_OK; /* '<S21>/S-Function1' */
122uint32_T DIAG_CAN3_Count_Stuff_Errors; /* '<S18>/S-Function1' */
123uint32_T DIAG_CAN3_Count_Format_Errors;/* '<S18>/S-Function1' */
124uint32_T DIAG_CAN3_Count_Ack_Errors; /* '<S18>/S-Function1' */
125uint32_T DIAG_CAN3_Count_Bit0_Errors; /* '<S18>/S-Function1' */
126uint32_T DIAG_CAN3_Count_Bit1_Errors; /* '<S18>/S-Function1' */
127uint32_T DIAG_CAN3_Count_CRC_Errors; /* '<S18>/S-Function1' */
128uint32_T DIAG_CAN3_Count_RX_Lost; /* '<S18>/S-Function1' */
129uint32_T DIAG_CAN3_Count_RX_OK; /* '<S18>/S-Function1' */
130uint32_T DIAG_CAN3_Count_TX_OK; /* '<S18>/S-Function1' */
131uint32_T DIAG_CAN4_Count_Stuff_Errors; /* '<S19>/S-Function1' */
132uint32_T DIAG_CAN4_Count_Format_Errors;/* '<S19>/S-Function1' */
133uint32_T DIAG_CAN4_Count_Ack_Errors; /* '<S19>/S-Function1' */
134uint32_T DIAG_CAN4_Count_Bit0_Errors; /* '<S19>/S-Function1' */
135uint32_T DIAG_CAN4_Count_Bit1_Errors; /* '<S19>/S-Function1' */
136uint32_T DIAG_CAN4_Count_CRC_Errors; /* '<S19>/S-Function1' */
137uint32_T DIAG_CAN4_Count_RX_Lost; /* '<S19>/S-Function1' */
138uint32_T DIAG_CAN4_Count_RX_OK; /* '<S19>/S-Function1' */
139uint32_T DIAG_CAN4_Count_TX_OK; /* '<S19>/S-Function1' */
140uint32_T DIAG_CAN2_Count_Stuff_Errors; /* '<S17>/S-Function1' */
141uint32_T DIAG_CAN2_Count_Format_Errors;/* '<S17>/S-Function1' */
142uint32_T DIAG_CAN2_Count_Ack_Errors; /* '<S17>/S-Function1' */
143uint32_T DIAG_CAN2_Count_Bit0_Errors; /* '<S17>/S-Function1' */
144uint32_T DIAG_CAN2_Count_Bit1_Errors; /* '<S17>/S-Function1' */
145uint32_T DIAG_CAN2_Count_CRC_Errors; /* '<S17>/S-Function1' */
146uint32_T DIAG_CAN2_Count_RX_Lost; /* '<S17>/S-Function1' */
147uint32_T DIAG_CAN2_Count_RX_OK; /* '<S17>/S-Function1' */
148uint32_T DIAG_CAN2_Count_TX_OK; /* '<S17>/S-Function1' */
149real32_T REAX_Handwheel_Torque; /* '<S405>/Data Type Conversion3' */
150real32_T REAX_Handwheel_Velocity; /* '<S405>/Data Type Conversion4' */
151real32_T REAX_Pull_Compensation; /* '<S405>/Data Type Conversion5' */
152ENUM_CAN_STATUS_DIAG_T DIAG_CAN1_Status;/* '<S1>/Data Type Conversion' */
153ENUM_CAN_STATUS_DIAG_T DIAG_CAN5_Status;/* '<S1>/Data Type Conversion5' */
154ENUM_CAN_STATUS_DIAG_T DIAG_CAN6_Status;/* '<S1>/Data Type Conversion4' */
155ENUM_CAN_STATUS_DIAG_T DIAG_CAN3_Status;/* '<S1>/Data Type Conversion3' */
156ENUM_CAN_STATUS_DIAG_T DIAG_CAN4_Status;/* '<S1>/Data Type Conversion2' */
157ENUM_CAN_STATUS_DIAG_T DIAG_CAN2_Status;/* '<S1>/Data Type Conversion1' */
158uint8_T SupervisorMode; /* '<S384>/Switch9' */
159uint8_T REAX_Current_Mode; /* '<S405>/Data Type Conversion' */
160uint8_T REAX_Req_Mode; /* '<S405>/Data Type Conversion1' */
161uint8_T REAX_Status; /* '<S405>/Data Type Conversion2' */
162uint8_T GLB_SWVERSION_CPV_[100]; /* '<S1046>/Constant' */
163uint8_T MABX_Mode; /* '<S76>/Switch' */
164boolean_T EStop; /* '<S402>/Logical Operator1' */
165boolean_T EnableSw; /* '<S716>/Switch' */
166boolean_T RTMapsOk; /* '<S384>/AND' */
167boolean_T EngagePB; /* '<S402>/Logical Operator2' */
168boolean_T AutonomousEnabled; /* '<S76>/Autonomous Mode Switch1' */
169boolean_T AutonomousOutputEnabled; /* '<S76>/Autonomous Mode Switch' */
170boolean_T RateLimiterActive; /* '<S306>/Compare' */
171real_T Pedal_pwm_position; /* '<S720>/Switch' */
172
173/* Exported block parameters */
174real_T APTC_PEDAL_LOW_IDLE_SW_THR_APV = 3.0;/* Variable: APTC_PEDAL_LOW_IDLE_SW_THR_APV
175 * Referenced by: '<S75>/Constant'
176 */
177real_T APTC_TRQ_PED_INV_MAP_PED_POS_MPV[1328] = { 0.0, 0.3125, 0.859375, 1.15625,
178 1.59375, 1.8125, 1.921875, 2.375, 3.8125, 4.3125, 4.84375, 4.96875, 5.71875,
179 6.28125, 6.5625, 6.890625, 7.0, 7.8606557377049, 9.1229508196721,
180 10.327868852459, 11.532786885246, 14.0, 15.25748502994, 15.425149700599,
181 15.718562874251, 16.808383233533, 17.730538922156, 18.023952095808,
182 18.275449101796, 18.904191616766, 19.449101796407, 19.658682634731,
183 19.74251497006, 19.826347305389, 20.287425149701, 21.0, 21.516393442623,
184 22.290983606557, 23.409836065574, 24.758196721311, 24.959016393443,
185 25.217213114754, 26.22131147541, 26.995901639344, 27.311475409836,
186 27.454918032787, 27.512295081967, 27.684426229508, 28.0, 32.101910828025,
187 32.235668789809, 34.687898089172, 35.0, 36.734104046243, 38.815028901734,
188 42.28323699422, 42.514450867052, 44.364161849711, 51.878612716763, 55.0,
189 72.260273972603, 79.041095890411, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
190 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
191 100.0, 100.0, 100.0, 100.0, 0.0, 0.33333333333333, 0.91666666666667,
192 1.2333333333333, 1.7, 1.9333333333333, 2.05, 2.5333333333333, 4.0666666666667,
193 4.6, 5.1666666666667, 5.3, 6.1, 6.7, 7.0, 8.3738317757009, 8.8317757009346,
194 9.8130841121495, 11.252336448598, 12.626168224299, 14.0, 15.559585492228,
195 16.647668393782, 16.79274611399, 17.046632124352, 17.989637305699,
196 18.787564766839, 19.041450777202, 19.259067357513, 19.80310880829,
197 20.274611398964, 20.455958549223, 20.528497409326, 20.60103626943, 21.0,
198 21.476, 21.98, 22.736, 23.828, 25.144, 25.34, 25.592, 26.572, 27.328, 27.636,
199 27.776, 27.832, 28.0, 28.478260869565, 32.478260869565, 32.608695652174, 35.0,
200 35.777777777778, 37.444444444444, 39.444444444444, 42.777777777778, 43.0,
201 44.777777777778, 52.0, 55.0, 61.237623762376, 63.688118811881, 71.262376237624,
202 75.160891089109, 78.613861386139, 96.769801980198, 97.660891089109,
203 98.329207920792, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
204 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 0.57377049180328,
205 1.577868852459, 2.1229508196721, 2.9262295081967, 3.327868852459,
206 3.5286885245902, 4.3606557377049, 7.0, 7.8549618320611, 8.763358778626,
207 8.9770992366412, 10.259541984733, 11.221374045802, 11.702290076336,
208 12.263358778626, 12.450381679389, 12.851145038168, 13.43893129771, 14.0,
209 14.757731958763, 16.309278350515, 17.39175257732, 17.536082474227,
210 17.788659793814, 18.726804123711, 19.520618556701, 19.773195876289,
211 19.989690721649, 20.530927835052, 21.0, 21.132575757576, 21.185606060606,
212 21.238636363636, 21.530303030303, 21.981060606061, 22.458333333333,
213 23.174242424242, 24.208333333333, 25.454545454545, 25.640151515152,
214 25.878787878788, 26.806818181818, 27.522727272727, 27.814393939394,
215 27.94696969697, 28.0, 28.202898550725, 28.574879227053, 31.685990338164,
216 31.787439613527, 33.647342995169, 33.884057971014, 34.391304347826, 35.0,
217 36.704545454545, 36.818181818182, 37.727272727273, 41.420454545455,
218 42.954545454545, 46.136363636364, 47.386363636364, 51.25, 53.238636363636,
219 55.0, 64.249684741488, 64.703656998739, 65.044136191677, 65.895334174023,
220 75.769230769231, 79.457755359395, 82.919293820933, 84.451450189155,
221 93.417402269861, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
222 0.0, 0.92105263157895, 2.5328947368421, 3.4078947368421, 4.6973684210526,
223 5.3421052631579, 5.6644736842105, 7.0, 8.9339339339339, 9.6066066066066,
224 10.321321321321, 10.489489489489, 11.498498498498, 12.255255255255,
225 12.633633633634, 13.075075075075, 13.222222222222, 13.537537537538, 14.0,
226 14.65625, 15.3125, 16.65625, 17.59375, 17.71875, 17.9375, 18.75, 19.4375,
227 19.65625, 19.84375, 20.3125, 20.71875, 20.875, 20.9375, 21.0, 21.310483870968,
228 21.790322580645, 22.298387096774, 23.060483870968, 24.161290322581,
229 25.487903225806, 25.685483870968, 25.939516129032, 26.927419354839,
230 27.689516129032, 28.0, 28.143442622951, 28.200819672131, 28.372950819672,
231 28.688524590164, 31.327868852459, 31.41393442623, 32.991803278689,
232 33.19262295082, 33.622950819672, 34.139344262295, 35.0, 35.082474226804,
233 35.742268041237, 38.422680412371, 39.536082474227, 41.845360824742,
234 42.752577319588, 45.556701030928, 47.0, 48.278350515464, 55.0, 55.39603960396,
235 55.693069306931, 56.435643564356, 65.049504950495, 68.267326732673,
236 71.287128712871, 72.623762376238, 80.445544554455, 86.188118811881,
237 97.326732673267, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0,
238 1.2068965517241, 3.3189655172414, 4.4655172413793, 6.1551724137931, 7.0,
239 7.1412103746398, 7.7262247838617, 9.5821325648415, 10.227665706052,
240 10.913544668588, 11.07492795389, 12.043227665706, 12.769452449568,
241 13.132564841499, 13.556195965418, 13.697406340058, 14.0, 14.599221789883,
242 15.171206225681, 15.743190661479, 16.91439688716, 17.731517509728,
243 17.84046692607, 18.031128404669, 18.739299610895, 19.338521400778,
244 19.529182879377, 19.692607003891, 20.101167315175, 20.455252918288,
245 20.591439688716, 20.645914396887, 20.700389105058, 21.0, 21.526548672566,
246 22.08407079646, 22.920353982301, 24.128318584071, 25.58407079646,
247 25.800884955752, 26.079646017699, 27.163716814159, 28.0, 28.282051282051,
248 28.410256410256, 28.461538461538, 28.615384615385, 28.897435897436,
249 31.25641025641, 31.333333333333, 32.74358974359, 32.923076923077,
250 33.307692307692, 33.769230769231, 34.538461538462, 34.589743589744, 35.0,
251 36.768707482993, 37.503401360544, 39.027210884354, 39.625850340136,
252 41.47619047619, 42.428571428571, 43.272108843537, 47.707482993197,
253 47.925170068027, 48.08843537415, 48.496598639456, 53.231292517007, 55.0,
254 57.99672489083, 59.323144104803, 67.085152838428, 72.78384279476,
255 83.837336244541, 86.490174672489, 91.550218340611, 99.312227074236, 100.0,
256 100.0, 100.0, 100.0, 0.0, 1.8918918918919, 5.2027027027027, 7.0,
257 7.5340599455041, 7.8010899182561, 7.9346049046322, 8.4877384196185,
258 10.242506811989, 10.852861035422, 11.50136239782, 11.653950953678,
259 12.569482288828, 13.256130790191, 13.599455040872, 14.0, 14.185606060606,
260 14.583333333333, 15.166666666667, 15.723484848485, 16.280303030303,
261 17.420454545455, 18.215909090909, 18.32196969697, 18.507575757576,
262 19.19696969697, 19.780303030303, 19.965909090909, 20.125, 20.522727272727,
263 20.867424242424, 21.0, 21.065420560748, 21.130841121495, 21.490654205607,
264 22.046728971963, 22.635514018692, 23.518691588785, 24.794392523364,
265 26.331775700935, 26.560747663551, 26.855140186916, 28.0, 28.665492957746,
266 28.93661971831, 29.05985915493, 29.109154929577, 29.257042253521,
267 29.528169014085, 31.795774647887, 31.869718309859, 33.225352112676,
268 33.397887323944, 33.767605633803, 34.211267605634, 34.950704225352, 35.0,
269 35.381406436234, 36.930870083433, 37.574493444577, 38.909415971395,
270 39.433849821216, 41.054827175209, 41.88915375447, 42.628128724672,
271 46.513706793802, 46.704410011919, 46.847437425507, 47.205005959476,
272 51.352800953516, 52.902264600715, 54.356376638856, 55.0, 62.917594654788,
273 68.730512249443, 80.005567928731, 82.711581291759, 87.873051224944,
274 95.790645879733, 96.492204899777, 100.0, 100.0, 100.0, 0.0, 7.0,
275 7.8448275862069, 8.3034482758621, 8.9793103448276, 9.3172413793103,
276 9.4862068965517, 10.186206896552, 12.406896551724, 13.179310344828, 14.0,
277 14.157303370787, 15.101123595506, 15.808988764045, 16.162921348315,
278 16.575842696629, 16.713483146067, 17.008426966292, 17.441011235955,
279 17.85393258427, 18.266853932584, 19.112359550562, 19.702247191011,
280 19.780898876404, 19.918539325843, 20.429775280899, 20.862359550562, 21.0,
281 21.192660550459, 21.674311926606, 22.091743119266, 22.252293577982,
282 22.316513761468, 22.380733944954, 22.733944954128, 23.279816513761,
283 23.857798165138, 24.724770642202, 25.977064220183, 27.48623853211,
284 27.711009174312, 28.0, 28.910780669145, 29.613382899628, 29.899628252788,
285 30.029739776952, 30.081784386617, 30.237918215613, 30.524163568773,
286 32.918215613383, 32.996282527881, 34.42750929368, 34.609665427509, 35.0,
287 35.417633410673, 36.113689095128, 36.160092807425, 36.5313225058,
288 38.039443155452, 38.665893271462, 39.965197215777, 40.475638051044,
289 42.053364269142, 42.865429234339, 43.584686774942, 47.366589327146,
290 47.552204176334, 47.691415313225, 48.039443155452, 52.07656612529,
291 53.584686774942, 55.0, 56.296691568837, 63.884738527215, 69.455709711846,
292 80.261472785486, 82.854855923159, 87.801494130203, 95.389541088581,
293 96.061899679829, 99.423692636073, 100.0, 100.0, 0.0, 7.0, 9.378640776699,
294 10.669902912621, 12.572815533981, 13.52427184466, 14.0, 14.394941634241,
295 15.647859922179, 16.083657587549, 16.546692607004, 16.655642023346,
296 17.309338521401, 17.799610894942, 18.044747081712, 18.330739299611,
297 18.426070038911, 18.630350194553, 18.929961089494, 19.215953307393,
298 19.501945525292, 20.087548638132, 20.496108949416, 20.550583657588,
299 20.645914396887, 21.0, 21.836956521739, 22.103260869565, 22.33152173913,
300 22.902173913043, 23.396739130435, 23.586956521739, 23.663043478261,
301 23.739130434783, 24.157608695652, 24.804347826087, 25.489130434783,
302 26.516304347826, 28.0, 29.305555555556, 29.5, 29.75, 30.722222222222,
303 31.472222222222, 31.777777777778, 31.916666666667, 31.972222222222,
304 32.138888888889, 32.444444444444, 35.0, 35.073529411765, 36.421568627451,
305 36.593137254902, 36.960784313725, 37.401960784314, 38.137254901961,
306 38.186274509804, 38.578431372549, 40.171568627451, 40.833333333333,
307 42.205882352941, 42.745098039216, 44.411764705882, 45.269607843137,
308 46.029411764706, 50.024509803922, 50.220588235294, 50.367647058824,
309 50.735294117647, 55.0, 57.720930232558, 60.274418604651, 61.404651162791,
310 68.018604651163, 72.874418604651, 82.293023255814, 84.553488372093,
311 88.86511627907, 95.479069767442, 96.06511627907, 98.995348837209,
312 99.497674418605, 100.0, 0.0, 14.0, 14.419520547945, 14.647260273973,
313 14.982876712329, 15.150684931507, 15.234589041096, 15.582191780822,
314 16.684931506849, 17.068493150685, 17.47602739726, 17.571917808219,
315 18.147260273973, 18.578767123288, 18.794520547945, 19.046232876712,
316 19.130136986301, 19.309931506849, 19.573630136986, 19.825342465753,
317 20.077054794521, 20.592465753425, 20.952054794521, 21.0, 21.324503311258,
318 22.529801324503, 23.549668874172, 23.87417218543, 24.152317880795,
319 24.847682119205, 25.450331125828, 25.682119205298, 25.774834437086,
320 25.867549668874, 26.377483443709, 27.165562913907, 28.0, 28.913043478261,
321 30.231884057971, 31.821256038647, 32.057971014493, 32.36231884058,
322 33.545893719807, 34.458937198068, 34.830917874396, 35.0, 35.054200542005,
323 35.216802168022, 35.514905149051, 38.008130081301, 38.089430894309,
324 39.579945799458, 39.769647696477, 40.176151761518, 40.663956639566,
325 41.476964769648, 41.531165311653, 41.964769647696, 43.726287262873,
326 44.457994579946, 45.975609756098, 46.571815718157, 48.414634146341,
327 49.363143631436, 50.20325203252, 54.620596205962, 54.837398373984, 55.0,
328 55.583910034602, 62.357266435986, 64.887543252595, 67.262110726644,
329 68.313148788927, 74.463667820069, 78.979238754325, 87.737889273356,
330 89.839965397924, 93.849480968858, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 14.0,
331 14.708092485549, 15.092485549133, 15.658959537572, 15.942196531792,
332 16.083815028902, 16.670520231214, 18.531791907514, 19.179190751445,
333 19.867052023121, 20.028901734104, 21.0, 21.739002932551, 22.108504398827,
334 22.539589442815, 22.683284457478, 22.991202346041, 23.442815249267,
335 23.873900293255, 24.304985337243, 25.187683284457, 25.803519061584,
336 25.885630498534, 26.029325513196, 26.563049853372, 27.014662756598,
337 27.158357771261, 27.281524926686, 27.589442815249, 27.856304985337,
338 27.958944281525, 28.0, 28.083333333333, 28.541666666667, 29.25, 30.0, 31.125,
339 32.75, 34.708333333333, 35.0, 35.291734197731, 36.426256077796,
340 37.301458670989, 37.658022690438, 37.820097244733, 37.884927066451,
341 38.079416531605, 38.435980551053, 41.418152350081, 41.515397082658,
342 43.298217179903, 43.525121555916, 44.011345218801, 44.594813614263,
343 45.567260940032, 45.63209076175, 46.150729335494, 48.257698541329,
344 49.132901134522, 50.948136142626, 51.661264181523, 53.865478119935, 55.0,
345 56.15671641791, 62.238805970149, 62.537313432836, 62.761194029851,
346 63.320895522388, 69.813432835821, 72.238805970149, 74.514925373134,
347 75.522388059701, 81.417910447761, 85.746268656716, 94.141791044776,
348 96.15671641791, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 14.0,
349 16.987804878049, 18.609756097561, 21.0, 21.175942549372, 21.263913824057,
350 21.628366247756, 22.784560143627, 23.18671454219, 23.614003590664,
351 23.714542190305, 24.317773788151, 24.770197486535, 24.996409335727,
352 25.260323159785, 25.34829443447, 25.536804308797, 25.81328545781,
353 26.077199281867, 26.341113105925, 26.881508078995, 27.258527827648,
354 27.308797127469, 27.396768402154, 27.723518850987, 28.0, 28.39837398374,
355 28.739837398374, 29.593495934959, 30.333333333333, 30.617886178862,
356 30.731707317073, 30.845528455285, 31.471544715447, 32.439024390244,
357 33.463414634146, 35.0, 36.553784860558, 38.426294820717, 38.705179282869,
358 39.06374501992, 40.458167330677, 41.533864541833, 41.972111553785,
359 42.171314741036, 42.250996015936, 42.490039840637, 42.92828685259,
360 46.593625498008, 46.713147410359, 48.90438247012, 49.183266932271,
361 49.780876494024, 50.498007968127, 51.693227091633, 51.772908366534,
362 52.410358565737, 55.0, 55.966587112172, 57.971360381862, 58.758949880668,
363 61.193317422434, 62.44630071599, 63.556085918854, 69.391408114558,
364 69.677804295943, 69.892601431981, 70.429594272076, 76.658711217184,
365 78.985680190931, 81.169451073986, 82.136038186158, 87.792362768496,
366 91.945107398568, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0,
367 21.0, 21.414551607445, 21.639593908629, 21.971235194585, 22.137055837563,
368 22.219966159052, 22.56345177665, 23.653130287648, 24.032148900169,
369 24.434856175973, 24.529610829103, 25.098138747885, 25.524534686971,
370 25.737732656514, 25.986463620981, 26.06937394247, 26.24703891709,
371 26.507614213198, 26.756345177665, 27.005076142132, 27.514382402707,
372 27.869712351946, 27.917089678511, 28.0, 30.394736842105, 32.421052631579,
373 33.065789473684, 33.618421052632, 35.0, 35.668380462725, 35.925449871465,
374 36.028277634961, 36.131105398458, 36.696658097686, 37.570694087404,
375 38.496143958869, 39.884318766067, 41.889460154242, 44.305912596401,
376 44.665809768638, 45.12853470437, 46.928020565553, 48.316195372751,
377 48.881748071979, 49.13881748072, 49.241645244216, 49.550128534704,
378 50.115681233933, 54.845758354756, 55.0, 57.201957295374, 57.482206405694,
379 58.082740213523, 58.803380782918, 60.004448398577, 60.084519572954,
380 60.725088967972, 63.327402135231, 64.408362989324, 66.650355871886,
381 67.531138790036, 70.253558718861, 71.654804270463, 72.89590747331,
382 79.421708185053, 79.741992882562, 79.982206405694, 80.582740213523,
383 87.548932384342, 90.151245551601, 92.593416370107, 93.674377224199, 100.0,
384 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 21.0,
385 21.822147651007, 22.268456375839, 22.926174496644, 23.255033557047,
386 23.419463087248, 24.10067114094, 26.261744966443, 27.013422818792,
387 27.812080536913, 28.0, 29.191489361702, 30.085106382979, 30.531914893617,
388 31.053191489362, 31.22695035461, 31.599290780142, 32.145390070922,
389 32.666666666667, 33.187943262411, 34.255319148936, 35.0, 35.298507462687,
390 35.820895522388, 37.761194029851, 39.402985074627, 39.925373134328,
391 40.373134328358, 41.492537313433, 42.462686567164, 42.835820895522,
392 42.985074626866, 43.134328358209, 43.955223880597, 45.223880597015,
393 46.567164179104, 48.582089552239, 51.492537313433, 55.0, 55.381355932203,
394 55.871670702179, 57.778450363196, 59.249394673123, 59.848668280872,
395 60.121065375303, 60.230024213075, 60.556900726392, 61.15617433414,
396 66.168280871671, 66.331719128329, 69.32808716707, 69.709443099274,
397 70.526634382567, 71.507263922518, 73.141646489104, 73.250605326877,
398 74.122276029056, 77.663438256659, 79.134382566586, 82.185230024213,
399 83.383777239709, 87.088377723971, 88.995157384988, 90.68401937046,
400 99.56416464891, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
401 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 21.0, 28.0,
402 28.383285302594, 28.948126801153, 29.230547550432, 29.371757925072,
403 29.956772334294, 31.812680115274, 32.458213256484, 33.14409221902,
404 33.305475504323, 34.273775216138, 35.0, 36.333333333333, 37.888888888889,
405 38.407407407407, 39.518518518519, 41.148148148148, 42.703703703704,
406 44.259259259259, 47.444444444444, 49.666666666667, 49.962962962963,
407 50.481481481481, 52.407407407407, 54.037037037037, 54.555555555556, 55.0,
408 55.941422594142, 56.757322175732, 57.071129707113, 57.196652719665,
409 57.322175732218, 58.012552301255, 59.07949790795, 60.20920502092,
410 61.903765690377, 64.351464435146, 67.301255230126, 67.740585774059,
411 68.305439330544, 70.502092050209, 72.196652719665, 72.887029288703,
412 73.200836820084, 73.326359832636, 73.702928870293, 74.393305439331,
413 80.167364016736, 80.355648535565, 83.807531380753, 84.246861924686,
414 85.188284518828, 86.317991631799, 88.200836820084, 88.326359832636,
415 89.330543933054, 93.410041841004, 95.10460251046, 98.619246861925, 100.0,
416 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
417 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0,
418 28.0, 28.95703125, 29.4765625, 30.2421875, 30.625, 30.81640625, 31.609375,
419 34.125, 35.0, 37.098765432099, 37.592592592593, 40.555555555556,
420 42.777777777778, 43.888888888889, 45.185185185185, 45.617283950617,
421 46.543209876543, 47.901234567901, 49.197530864198, 50.493827160494,
422 53.148148148148, 55.0, 55.234680573664, 55.645371577575, 57.170795306389,
423 58.461538461538, 58.87222946545, 59.224250325945, 60.104302477184,
424 60.867014341591, 61.16036505867, 61.277705345502, 61.395045632334,
425 62.040417209909, 63.037809647979, 64.093872229465, 65.677966101695,
426 67.966101694915, 70.723598435463, 71.134289439374, 71.662320730117,
427 73.715775749674, 75.299869621904, 75.945241199478, 76.238591916558,
428 76.35593220339, 76.707953063885, 77.35332464146, 82.750977835724,
429 82.926988265971, 86.153846153846, 86.564537157757, 87.444589308996,
430 88.500651890482, 90.26075619296, 90.378096479791, 91.316818774446,
431 95.13037809648, 96.714471968709, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
432 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
433 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
434 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
435 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
436 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
437 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
438 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
439 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
440 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
441 100.0 } ; /* Variable: APTC_TRQ_PED_INV_MAP_PED_POS_MPV
442 * Referenced by: '<S85>/2D_Lookup_Table'
443 */
444
445real_T APTC_TRQ_PED_INV_MAP_TRQ_STEPS[83] = { 0.0, 20.0, 55.0, 74.0, 102.0,
446 116.0, 123.0, 152.0, 244.0, 276.0, 310.0, 318.0, 366.0, 402.0, 420.0, 441.0,
447 448.0, 463.0, 485.0, 506.0, 527.0, 570.0, 600.0, 604.0, 611.0, 637.0, 659.0,
448 666.0, 672.0, 687.0, 700.0, 705.0, 707.0, 709.0, 720.0, 737.0, 755.0, 782.0,
449 821.0, 868.0, 875.0, 884.0, 919.0, 946.0, 957.0, 962.0, 964.0, 970.0, 981.0,
450 1073.0, 1076.0, 1131.0, 1138.0, 1153.0, 1171.0, 1201.0, 1203.0, 1219.0, 1284.0,
451 1311.0, 1367.0, 1389.0, 1457.0, 1492.0, 1523.0, 1686.0, 1694.0, 1700.0, 1715.0,
452 1889.0, 1954.0, 2015.0, 2042.0, 2200.0, 2316.0, 2541.0, 2595.0, 2698.0, 2856.0,
453 2870.0, 2940.0, 2952.0, 2964.0 } ; /* Variable: APTC_TRQ_PED_INV_MAP_TRQ_STEPS
454 * Referenced by: '<S85>/2D_Lookup_Table'
455 */
456
457real_T APTC_TRQ_PED_TRQ_DATA_MPV[128] = { 0.0, 448.0, 570.0, 737.0, 981.0,
458 1138.0, 1311.0, 1457.0, 0.0, 420.0, 527.0, 720.0, 970.0, 1131.0, 1311.0,
459 1715.0, 0.0, 244.0, 506.0, 700.0, 964.0, 1171.0, 1523.0, 2316.0, 0.0, 152.0,
460 485.0, 709.0, 957.0, 1201.0, 1686.0, 2595.0, 0.0, 116.0, 463.0, 720.0, 946.0,
461 1219.0, 1954.0, 2870.0, 0.0, 74.0, 441.0, 705.0, 919.0, 1203.0, 2042.0, 2940.0,
462 0.0, 20.0, 310.0, 666.0, 884.0, 1153.0, 2015.0, 2952.0, 0.0, 20.0, 123.0,
463 637.0, 821.0, 1073.0, 1889.0, 2964.0, 0.0, 20.0, 20.0, 604.0, 755.0, 962.0,
464 1700.0, 2856.0, 0.0, 20.0, 20.0, 366.0, 707.0, 875.0, 1492.0, 2698.0, 0.0,
465 20.0, 20.0, 102.0, 659.0, 782.0, 1284.0, 2541.0, 0.0, 20.0, 20.0, 20.0, 611.0,
466 687.0, 1076.0, 2200.0, 0.0, 20.0, 20.0, 20.0, 318.0, 600.0, 868.0, 1694.0, 0.0,
467 20.0, 20.0, 20.0, 55.0, 402.0, 672.0, 1389.0, 0.0, 20.0, 20.0, 20.0, 20.0,
468 276.0, 600.0, 1367.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } ;/* Variable: APTC_TRQ_PED_TRQ_DATA_MPV
469 * Referenced by: '<S83>/2-D Lookup Table'
470 */
471
472real_T APTC_TRQ_PED_TRQ_ESPD_STEP_MPV[16] = { 500.0, 650.0, 885.0, 950.0, 1050.0,
473 1120.0, 1240.0, 1360.0, 1475.0, 1590.0, 1710.0, 1830.0, 1950.0, 2150.0, 2300.0,
474 2350.0 } ; /* Variable: APTC_TRQ_PED_TRQ_ESPD_STEP_MPV
475 * Referenced by:
476 * '<S83>/2-D Lookup Table'
477 * '<S85>/2D_Lookup_Table'
478 */
479
480real_T APTC_TRQ_PED_TRQ_POS_STEP_MPV[8] = { 0.0, 7.0, 14.0, 21.0, 28.0, 35.0,
481 55.0, 100.0 } ; /* Variable: APTC_TRQ_PED_TRQ_POS_STEP_MPV
482 * Referenced by: '<S83>/2-D Lookup Table'
483 */
484
485real_T BRK_DEM_KD_DATA_MPV[8] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } ;/* Variable: BRK_DEM_KD_DATA_MPV
486 * Referenced by: '<S143>/1D_Lookup_Table'
487 */
488
489real_T BRK_DEM_KI_DATA_MPV[8] = { -1.5, -1.5, -1.5, -1.5, -1.5, -1.5, -1.5, -1.5
490} ; /* Variable: BRK_DEM_KI_DATA_MPV
491 * Referenced by: '<S142>/1D_Lookup_Table'
492 */
493
494real_T BRK_DEM_KP_DATA_MPV[8] = { -4.0, -4.0, -4.0, -4.0, -4.0, -4.0, -4.0, -4.0
495} ; /* Variable: BRK_DEM_KP_DATA_MPV
496 * Referenced by: '<S141>/1D_Lookup_Table'
497 */
498
499real_T BRK_DEM_MASS_STEP_MPV[8] = { 0.0, 5000.0, 10000.0, 20000.0, 30000.0,
500 40000.0, 50000.0, 54000.0 } ; /* Variable: BRK_DEM_MASS_STEP_MPV
501 * Referenced by:
502 * '<S141>/1D_Lookup_Table'
503 * '<S142>/1D_Lookup_Table'
504 * '<S143>/1D_Lookup_Table'
505 */
506
507real_T BRK_GOV_FF_DECEL_RATE_DATA_MPV[32] = { 0.0, -0.39, -1.76, -3.13, -4.5,
508 -5.87, -7.24, -8.61, -9.98, -11.35, -12.72, -14.09, -15.46, -16.83, -18.2,
509 -19.57, 0.0, -0.12, -0.53, -0.94, -1.35, -1.76, -2.17, -2.58, -2.99, -3.41,
510 -3.82, -4.23, -4.64, -5.05, -5.46, -5.87 } ;/* Variable: BRK_GOV_FF_DECEL_RATE_DATA_MPV
511 * Referenced by: '<S193>/2D_Lookup_Table'
512 */
513
514real_T BRK_GOV_FF_DECEL_RATE_STEP_MPV[16] = { -19.57, -18.2, -16.83, -15.46,
515 -14.09, -12.72, -11.35, -9.98, -8.61, -7.24, -5.87, -4.5, -3.13, -1.76, -0.39,
516 0.0 } ; /* Variable: BRK_GOV_FF_DECEL_RATE_STEP_MPV
517 * Referenced by:
518 * '<S194>/2D_Lookup_Table'
519 * '<S195>/2D_Lookup_Table'
520 */
521
522real_T BRK_GOV_FF_MASS_STEP_MPV[2] = { 9035.0, 36287.0 } ;/* Variable: BRK_GOV_FF_MASS_STEP_MPV
523 * Referenced by:
524 * '<S193>/2D_Lookup_Table'
525 * '<S194>/2D_Lookup_Table'
526 * '<S195>/2D_Lookup_Table'
527 */
528
529real_T BRK_GOV_FF_PRESS_KPA_DATA_MPV[32] = { 1034.0, 965.0, 896.0, 827.0, 758.0,
530 689.0, 621.0, 552.0, 483.0, 414.0, 345.0, 276.0, 207.0, 138.0, 69.0, 0.0,
531 2585.0, 2413.0, 2240.0, 2068.0, 1895.0, 1723.0, 1553.0, 1380.0, 1208.0, 1035.0,
532 863.0, 690.0, 518.0, 345.0, 173.0, 0.0 } ;/* Variable: BRK_GOV_FF_PRESS_KPA_DATA_MPV
533 * Referenced by:
534 * '<S194>/2D_Lookup_Table'
535 * '<S195>/2D_Lookup_Table'
536 */
537
538real_T BRK_GOV_FF_PRESS_KPA_STEP_MPV[16] = { 0.0, 69.0, 138.0, 207.0, 276.0,
539 345.0, 414.0, 483.0, 552.0, 621.0, 689.0, 758.0, 827.0, 896.0, 965.0, 1034.0 }
540; /* Variable: BRK_GOV_FF_PRESS_KPA_STEP_MPV
541 * Referenced by: '<S193>/2D_Lookup_Table'
542 */
543
544real_T Curvature_FF_Gain = 5.7; /* Variable: Curvature_FF_Gain
545 * Referenced by: '<S274>/FeedforwardGain'
546 */
547real_T DISTANCE_M = 200.0; /* Variable: DISTANCE_M
548 * Referenced by: '<S81>/DISTANCE_M'
549 */
550real_T Lateral_Control_Curvature_Limit = 0.5;/* Variable: Lateral_Control_Curvature_Limit
551 * Referenced by:
552 * '<S274>/Constant3'
553 * '<S274>/Constant5'
554 */
555real_T Lateral_Control_D = 0.25; /* Variable: Lateral_Control_D
556 * Referenced by: '<S298>/Derivative Gain'
557 */
558real_T Lateral_Control_Error_Limit = 0.1;/* Variable: Lateral_Control_Error_Limit
559 * Referenced by:
560 * '<S274>/Constant'
561 * '<S274>/Constant1'
562 */
563real_T Lateral_Control_I = 0.0; /* Variable: Lateral_Control_I
564 * Referenced by: '<S298>/Integral Gain'
565 */
566real_T Lateral_Control_P = 0.3; /* Variable: Lateral_Control_P
567 * Referenced by:
568 * '<S274>/PGain'
569 * '<S298>/Proportional Gain'
570 */
571real_T Lateral_Control_Pole = 0.98; /* Variable: Lateral_Control_Pole
572 * Referenced by: '<S300>/GainPole'
573 */
574real_T Lateral_Control_YawRate_Limit = 1.0;/* Variable: Lateral_Control_YawRate_Limit
575 * Referenced by:
576 * '<S274>/Constant2'
577 * '<S274>/Constant4'
578 */
579real_T Lateral_Control_Zero = 0.99; /* Variable: Lateral_Control_Zero
580 * Referenced by: '<S300>/GainZero'
581 */
582real_T PROPB_REAX_1_E4_DESIRED_POSITION_APV = 0.0;/* Variable: PROPB_REAX_1_E4_DESIRED_POSITION_APV
583 * Referenced by: '<S949>/Constant7'
584 */
585real_T STEERCTRL_WHEEL_ANGLE_DATA_MPV[72] = { -800.02001953125, -780.02899169922,
586 -760.03399658203, -740.0, -720.0, -700.00402832031, -680.0, -660.01397705078,
587 -640.01898193359, -620.02398681641, -600.02001953125, -580.03399658203,
588 -560.03900146484, -540.0, -520.00402832031, -500.00900268555, -480.01400756836,
589 -460.01901245117, -440.02398681641, -420.01998901367, -400.03399658203,
590 -380.03900146484, -360.0, -340.00399780273, -320.00900268555, -300.01400756836,
591 -280.01901245117, -260.02398681641, -240.02900695801, -220.03399658203,
592 -200.03900146484, -180.0, -160.00399780273, -140.00900268555, -120.01399993896,
593 -100.01899719238, -80.024002075195, -60.028999328613, -40.034000396729,
594 0.52700001001358, 29.969999313354, 50.00899887085, 69.959999084473,
595 89.949996948242, 109.99500274658, 129.99000549316, 149.98500061035,
596 170.0240020752, 189.97500610352, 209.9700012207, 229.96499633789,
597 249.96000671387, 270.0, 289.99499511719, 309.98999023438, 329.98498535156,
598 349.98001098633, 369.97500610352, 390.01400756836, 410.00900268555, 450.0,
599 470.0299987793, 489.98999023438, 509.98498535156, 529.97998046875,
600 549.97497558594, 569.96997070313, 589.96502685547, 610.21997070313, 630.0,
601 650.25, 670.0 } ; /* Variable: STEERCTRL_WHEEL_ANGLE_DATA_MPV
602 * Referenced by: '<S270>/1D_Lookup_Table'
603 */
604
605real_T STEERCTRL_WHEEL_ANGLE_STEP_MPV[72] = { -46.0, -44.5, -43.0, -42.0, -40.0,
606 -39.0, -37.5, -36.5, -35.0, -34.0, -33.0, -31.5, -30.5, -29.0, -28.0, -26.5,
607 -25.5, -24.5, -23.5, -22.0, -21.0, -20.0, -19.0, -17.5, -16.5, -15.5, -14.0,
608 -13.0, -12.0, -11.0, -10.0, -8.5, -7.5, -6.5, -5.0, -4.0, -3.0, -2.0, -1.0,
609 0.0, 1.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0,
610 15.0, 16.0, 17.0, 18.5, 19.5, 20.5, 21.5, 23.5, 24.5, 25.5, 26.5, 27.5, 28.5,
611 29.0, 30.0, 31.0, 31.5, 32.5, 33.0 } ;/* Variable: STEERCTRL_WHEEL_ANGLE_STEP_MPV
612 * Referenced by: '<S270>/1D_Lookup_Table'
613 */
614
615real_T TQ_DEM_GEAR_RATIO_STEP_MPV[8] = { 0.0, 0.2, 4.0, 8.0, 10.0, 16.0, 18.0,
616 20.0 } ; /* Variable: TQ_DEM_GEAR_RATIO_STEP_MPV
617 * Referenced by:
618 * '<S235>/2D_Lookup_Table'
619 * '<S236>/2D_Lookup_Table'
620 * '<S237>/2D_Lookup_Table'
621 */
622
623real_T TQ_DEM_KD_DATA_MPV[64] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
624 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
625 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
626 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
627 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } ;/* Variable: TQ_DEM_KD_DATA_MPV
628 * Referenced by: '<S237>/2D_Lookup_Table'
629 */
630
631real_T TQ_DEM_KI_DATA_MPV[64] = { 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7,
632 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7,
633 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7,
634 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7,
635 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7 } ;/* Variable: TQ_DEM_KI_DATA_MPV
636 * Referenced by: '<S236>/2D_Lookup_Table'
637 */
638
639real_T TQ_DEM_KP_DATA_MPV[64] = { 4.0, 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
640 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
641 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
642 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
643 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0 } ;/* Variable: TQ_DEM_KP_DATA_MPV
644 * Referenced by: '<S235>/2D_Lookup_Table'
645 */
646
647real_T TQ_DEM_MASS_STEP_MPV[8] = { 0.0, 5000.0, 10000.0, 20000.0, 30000.0,
648 40000.0, 50000.0, 54000.0 } ; /* Variable: TQ_DEM_MASS_STEP_MPV
649 * Referenced by:
650 * '<S235>/2D_Lookup_Table'
651 * '<S236>/2D_Lookup_Table'
652 * '<S237>/2D_Lookup_Table'
653 */
654
655real_T UndersteerCorection = 1.5; /* Variable: UndersteerCorection
656 * Referenced by: '<S274>/UndersteerCorrection'
657 */
658real_T VSPD_TARGET_KPH_APV = 0.0; /* Variable: VSPD_TARGET_KPH_APV
659 * Referenced by: '<S81>/VSPD_TARGET_KPH_APV'
660 */
661real_T Yaw_Rate_FF_Gain = 0.15; /* Variable: Yaw_Rate_FF_Gain
662 * Referenced by: '<S274>/RateFeedbackGain'
663 */
664ENUM_AUTONOMOUS_MODE_T AUTONOMOUS_MODE_SELECTOR_APV =
665 ENUM_AUTONOMOUS_MODE_T_AUTO; /* Variable: AUTONOMOUS_MODE_SELECTOR_APV
666 * Referenced by: '<S76>/AUTONOMOUS_MODE_SELECTOR_APV'
667 */
668ENUM_CAN_RX_T CANR_PROPB_REAX_3_13_CHANNEL_APV = ENUM_CAN_RX_T_RX_CAN_2;/* Variable: CANR_PROPB_REAX_3_13_CHANNEL_APV
669 * Referenced by: '<S430>/Constant'
670 */
671ENUM_CAN_RX_T CANR_PROPB_REAX_4_13_CHANNEL_APV = ENUM_CAN_RX_T_RX_CAN_2;/* Variable: CANR_PROPB_REAX_4_13_CHANNEL_APV
672 * Referenced by: '<S431>/Constant'
673 */
674ENUM_CAN_RX_T CANR_PROPB_XPR_1_50_CHANNEL_APV = ENUM_CAN_RX_T_RX_CAN_3;/* Variable: CANR_PROPB_XPR_1_50_CHANNEL_APV
675 * Referenced by: '<S432>/Constant'
676 */
677ENUM_LONG_SPEED_DEMAND_SOURCE_T LONG_SPEED_SRC_SELECTOR_APV =
678 ENUM_LONG_SPEED_DEMAND_SOURCE_T_RW_WAYPOINTS;/* Variable: LONG_SPEED_SRC_SELECTOR_APV
679 * Referenced by:
680 * '<S80>/LONG_SPEED_SRC_SELECTOR_APV'
681 * '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
682 */
683ENUM_REAX_OPERATION_MODE_T PROPB_REAX_1_E4_DESIRED_OPMODE_APV =
684 ENUM_REAX_OPERATION_MODE_T_POSITION_CTRL_MODE;/* Variable: PROPB_REAX_1_E4_DESIRED_OPMODE_APV
685 * Referenced by: '<S932>/Constant6'
686 */
687ENUM_STEERING_POS_SIGNAL_SOURCE_T PROPB_REAX_1_E4_DES_POS_SIG_SRC_APV =
688 ENUM_STEERING_POS_SIGNAL_SOURCE_T_ESTIMATION;/* Variable: PROPB_REAX_1_E4_DES_POS_SIG_SRC_APV
689 * Referenced by: '<S949>/Constant1'
690 */
691ENUM_SWITCH_T RATE_LIMITER_ENABLE_APV = ENUM_SWITCH_T_ON;/* Variable: RATE_LIMITER_ENABLE_APV
692 * Referenced by: '<S299>/RATE_LIMITER_ENABLE_APV'
693 */
694
695/* Block signals (default storage) */
696B_L4_MABX_T L4_MABX_B;
697
698/* Block states (default storage) */
699DW_L4_MABX_T L4_MABX_DW;
700
701/* Previous zero-crossings (trigger) states */
702PrevZCX_L4_MABX_T L4_MABX_PrevZCX;
703
704/* Real-time model */
705RT_MODEL_L4_MABX_T L4_MABX_M_;
706RT_MODEL_L4_MABX_T *const L4_MABX_M = &L4_MABX_M_;
707
708/* Forward declaration for local functions */
709static int32_T safe_cast_to_ENUM_XPR_CONTROL_M(int32_T input);
710static int32_T safe_cast_to_ENUM_XPR_ERROR_STA(int32_T input);
711static void L4_MABX_enter_atomic_INITIAL(void);
712static void L4_MABX_Calculate_abc(void);
713static void L4_MABX_CalculateAlternate_abc(void);
714static void L4_MABX_CalculateAcceleration34(void);
715static int32_T safe_cast_to_ENUM_CAN_STATUS_DI(int32_T input);
716
717/* Lookup Binary Search Utility BINARYSEARCH_real_T */
718void BINARYSEARCH_real_T(uint32_T *piLeft, uint32_T *piRght, real_T u, const
719 real_T *pData, uint32_T iHi)
720{
721 /* Find the location of current input value in the data table. */
722 *piLeft = 0U;
723 *piRght = iHi;
724 if (u <= pData[0] ) {
725 /* Less than or equal to the smallest point in the table. */
726 *piRght = 0U;
727 } else if (u >= pData[iHi] ) {
728 /* Greater than or equal to the largest point in the table. */
729 *piLeft = iHi;
730 } else {
731 uint32_T i;
732
733 /* Do a binary search. */
734 while (( *piRght - *piLeft ) > 1U ) {
735 /* Get the average of the left and right indices using to Floor rounding. */
736 i = (*piLeft + *piRght) >> 1;
737
738 /* Move either the right index or the left index so that */
739 /* LeftDataPoint <= CurrentValue < RightDataPoint */
740 if (u < pData[i] ) {
741 *piRght = i;
742 } else {
743 *piLeft = i;
744 }
745 }
746 }
747}
748
749/* Lookup Utility LookUp_real_T_real_T */
750void LookUp_real_T_real_T(real_T *pY, const real_T *pYData, real_T u, const
751 real_T *pUData, uint32_T iHi)
752{
753 uint32_T iLeft;
754 uint32_T iRght;
755 BINARYSEARCH_real_T( &(iLeft), &(iRght), u, pUData, iHi);
756
757 {
758 real_T lambda;
759 if (pUData[iRght] > pUData[iLeft] ) {
760 real_T num;
761 real_T den;
762 den = pUData[iRght];
763 den -= pUData[iLeft];
764 num = u;
765 num -= pUData[iLeft];
766 lambda = num / den;
767 } else {
768 lambda = 0.0;
769 }
770
771 {
772 real_T yLeftCast;
773 real_T yRghtCast;
774 yLeftCast = pYData[iLeft];
775 yRghtCast = pYData[iRght];
776 yLeftCast += lambda * ( yRghtCast - yLeftCast );
777 (*pY) = yLeftCast;
778 }
779 }
780}
781
782real_T look1_binlcapw(real_T u0, const real_T bp0[], const real_T table[],
783 uint32_T maxIndex)
784{
785 real_T y;
786 real_T frac;
787 uint32_T iRght;
788 uint32_T iLeft;
789 uint32_T bpIdx;
790
791 /* Lookup 1-D
792 Search method: 'binary'
793 Use previous index: 'off'
794 Interpolation method: 'Linear point-slope'
795 Extrapolation method: 'Clip'
796 Use last breakpoint for index at or above upper limit: 'on'
797 Remove protection against out-of-range input in generated code: 'off'
798 */
799 /* Prelookup - Index and Fraction
800 Index Search method: 'binary'
801 Extrapolation method: 'Clip'
802 Use previous index: 'off'
803 Use last breakpoint for index at or above upper limit: 'on'
804 Remove protection against out-of-range input in generated code: 'off'
805 */
806 if (u0 <= bp0[0U]) {
807 iLeft = 0U;
808 frac = 0.0;
809 } else if (u0 < bp0[maxIndex]) {
810 /* Binary Search */
811 bpIdx = maxIndex >> 1U;
812 iLeft = 0U;
813 iRght = maxIndex;
814 while (iRght - iLeft > 1U) {
815 if (u0 < bp0[bpIdx]) {
816 iRght = bpIdx;
817 } else {
818 iLeft = bpIdx;
819 }
820
821 bpIdx = (iRght + iLeft) >> 1U;
822 }
823
824 frac = (u0 - bp0[iLeft]) / (bp0[iLeft + 1U] - bp0[iLeft]);
825 } else {
826 iLeft = maxIndex;
827 frac = 0.0;
828 }
829
830 /* Interpolation 1-D
831 Interpolation method: 'Linear point-slope'
832 Use last breakpoint for index at or above upper limit: 'on'
833 Overflow mode: 'portable wrapping'
834 */
835 if (iLeft == maxIndex) {
836 y = table[iLeft];
837 } else {
838 y = (table[iLeft + 1U] - table[iLeft]) * frac + table[iLeft];
839 }
840
841 return y;
842}
843
844real_T look2_binlcapw(real_T u0, real_T u1, const real_T bp0[], const real_T
845 bp1[], const real_T table[], const uint32_T maxIndex[],
846 uint32_T stride)
847{
848 real_T y;
849 real_T frac;
850 uint32_T bpIndices[2];
851 real_T fractions[2];
852 real_T yR_1d;
853 uint32_T iRght;
854 uint32_T bpIdx;
855 uint32_T iLeft;
856
857 /* Lookup 2-D
858 Search method: 'binary'
859 Use previous index: 'off'
860 Interpolation method: 'Linear point-slope'
861 Extrapolation method: 'Clip'
862 Use last breakpoint for index at or above upper limit: 'on'
863 Remove protection against out-of-range input in generated code: 'off'
864 */
865 /* Prelookup - Index and Fraction
866 Index Search method: 'binary'
867 Extrapolation method: 'Clip'
868 Use previous index: 'off'
869 Use last breakpoint for index at or above upper limit: 'on'
870 Remove protection against out-of-range input in generated code: 'off'
871 */
872 if (u0 <= bp0[0U]) {
873 iLeft = 0U;
874 frac = 0.0;
875 } else if (u0 < bp0[maxIndex[0U]]) {
876 /* Binary Search */
877 bpIdx = maxIndex[0U] >> 1U;
878 iLeft = 0U;
879 iRght = maxIndex[0U];
880 while (iRght - iLeft > 1U) {
881 if (u0 < bp0[bpIdx]) {
882 iRght = bpIdx;
883 } else {
884 iLeft = bpIdx;
885 }
886
887 bpIdx = (iRght + iLeft) >> 1U;
888 }
889
890 frac = (u0 - bp0[iLeft]) / (bp0[iLeft + 1U] - bp0[iLeft]);
891 } else {
892 iLeft = maxIndex[0U];
893 frac = 0.0;
894 }
895
896 fractions[0U] = frac;
897 bpIndices[0U] = iLeft;
898
899 /* Prelookup - Index and Fraction
900 Index Search method: 'binary'
901 Extrapolation method: 'Clip'
902 Use previous index: 'off'
903 Use last breakpoint for index at or above upper limit: 'on'
904 Remove protection against out-of-range input in generated code: 'off'
905 */
906 if (u1 <= bp1[0U]) {
907 iLeft = 0U;
908 frac = 0.0;
909 } else if (u1 < bp1[maxIndex[1U]]) {
910 /* Binary Search */
911 bpIdx = maxIndex[1U] >> 1U;
912 iLeft = 0U;
913 iRght = maxIndex[1U];
914 while (iRght - iLeft > 1U) {
915 if (u1 < bp1[bpIdx]) {
916 iRght = bpIdx;
917 } else {
918 iLeft = bpIdx;
919 }
920
921 bpIdx = (iRght + iLeft) >> 1U;
922 }
923
924 frac = (u1 - bp1[iLeft]) / (bp1[iLeft + 1U] - bp1[iLeft]);
925 } else {
926 iLeft = maxIndex[1U];
927 frac = 0.0;
928 }
929
930 /* Interpolation 2-D
931 Interpolation method: 'Linear point-slope'
932 Use last breakpoint for index at or above upper limit: 'on'
933 Overflow mode: 'portable wrapping'
934 */
935 bpIdx = iLeft * stride + bpIndices[0U];
936 if (bpIndices[0U] == maxIndex[0U]) {
937 y = table[bpIdx];
938 } else {
939 y = (table[bpIdx + 1U] - table[bpIdx]) * fractions[0U] + table[bpIdx];
940 }
941
942 if (iLeft == maxIndex[1U]) {
943 } else {
944 bpIdx += stride;
945 if (bpIndices[0U] == maxIndex[0U]) {
946 yR_1d = table[bpIdx];
947 } else {
948 yR_1d = (table[bpIdx + 1U] - table[bpIdx]) * fractions[0U] + table[bpIdx];
949 }
950
951 y += (yR_1d - y) * frac;
952 }
953
954 return y;
955}
956
957real_T look1_binlxpw(real_T u0, const real_T bp0[], const real_T table[],
958 uint32_T maxIndex)
959{
960 real_T frac;
961 uint32_T iRght;
962 uint32_T iLeft;
963 uint32_T bpIdx;
964
965 /* Lookup 1-D
966 Search method: 'binary'
967 Use previous index: 'off'
968 Interpolation method: 'Linear point-slope'
969 Extrapolation method: 'Linear'
970 Use last breakpoint for index at or above upper limit: 'off'
971 Remove protection against out-of-range input in generated code: 'off'
972 */
973 /* Prelookup - Index and Fraction
974 Index Search method: 'binary'
975 Extrapolation method: 'Linear'
976 Use previous index: 'off'
977 Use last breakpoint for index at or above upper limit: 'off'
978 Remove protection against out-of-range input in generated code: 'off'
979 */
980 if (u0 <= bp0[0U]) {
981 iLeft = 0U;
982 frac = (u0 - bp0[0U]) / (bp0[1U] - bp0[0U]);
983 } else if (u0 < bp0[maxIndex]) {
984 /* Binary Search */
985 bpIdx = maxIndex >> 1U;
986 iLeft = 0U;
987 iRght = maxIndex;
988 while (iRght - iLeft > 1U) {
989 if (u0 < bp0[bpIdx]) {
990 iRght = bpIdx;
991 } else {
992 iLeft = bpIdx;
993 }
994
995 bpIdx = (iRght + iLeft) >> 1U;
996 }
997
998 frac = (u0 - bp0[iLeft]) / (bp0[iLeft + 1U] - bp0[iLeft]);
999 } else {
1000 iLeft = maxIndex - 1U;
1001 frac = (u0 - bp0[maxIndex - 1U]) / (bp0[maxIndex] - bp0[maxIndex - 1U]);
1002 }
1003
1004 /* Interpolation 1-D
1005 Interpolation method: 'Linear point-slope'
1006 Use last breakpoint for index at or above upper limit: 'off'
1007 Overflow mode: 'portable wrapping'
1008 */
1009 return (table[iLeft + 1U] - table[iLeft]) * frac + table[iLeft];
1010}
1011
1012/*
1013 * Output and update for atomic system:
1014 * '<S82>/If_Then_Else'
1015 * '<S83>/If_Then_Else'
1016 * '<S83>/If_Then_Else1'
1017 * '<S89>/If_Then_Else'
1018 * '<S89>/If_Then_Else1'
1019 * '<S90>/If_Then_Else'
1020 * '<S90>/If_Then_Else1'
1021 * '<S115>/If_Then_Else'
1022 * '<S118>/If_Then_Else'
1023 * '<S120>/If_Then_Else'
1024 * ...
1025 */
1026void L4_MABX_If_Then_Else(boolean_T rtu_If, real_T rtu_Then, real_T rtu_Else,
1027 B_If_Then_Else_L4_MABX_T *localB)
1028{
1029 /* Switch: '<S86>/Switch' */
1030 if (rtu_If) {
1031 localB->Switch = rtu_Then;
1032 } else {
1033 localB->Switch = rtu_Else;
1034 }
1035
1036 /* End of Switch: '<S86>/Switch' */
1037}
1038
1039/*
1040 * System initialize for enable system:
1041 * '<S106>/Calculate_D_term'
1042 * '<S144>/Calculate_D_term'
1043 * '<S238>/Calculate_D_term'
1044 */
1045void L4_MA_Calculate_D_term_Init(B_Calculate_D_term_L4_MABX_T *localB,
1046 DW_Calculate_D_term_L4_MABX_T *localDW, P_Calculate_D_term_L4_MABX_T *localP)
1047{
1048 /* InitializeConditions for UnitDelay: '<S115>/Unit_Delay1' */
1049 localDW->Unit_Delay1_DSTATE = localP->Unit_Delay1_InitialCondition;
1050
1051 /* InitializeConditions for UnitDelay: '<S115>/Unit_Delay2' */
1052 localDW->Unit_Delay2_DSTATE = localP->Unit_Delay2_InitialCondition;
1053
1054 /* InitializeConditions for UnitDelay: '<S116>/FixPt Unit Delay2' */
1055 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtUnitDelay2_InitialConditio;
1056
1057 /* InitializeConditions for UnitDelay: '<S116>/FixPt Unit Delay1' */
1058 localDW->FixPtUnitDelay1_DSTATE = localP->FixPtUnitDelay1_InitialConditio;
1059
1060 /* SystemInitialize for Outport: '<S110>/GPID_d_term' */
1061 localB->Subtract = localP->GPID_d_term_Y0;
1062}
1063
1064/*
1065 * System reset for enable system:
1066 * '<S106>/Calculate_D_term'
1067 * '<S144>/Calculate_D_term'
1068 * '<S238>/Calculate_D_term'
1069 */
1070void L4_M_Calculate_D_term_Reset(DW_Calculate_D_term_L4_MABX_T *localDW,
1071 P_Calculate_D_term_L4_MABX_T *localP)
1072{
1073 /* InitializeConditions for UnitDelay: '<S115>/Unit_Delay1' */
1074 localDW->Unit_Delay1_DSTATE = localP->Unit_Delay1_InitialCondition;
1075
1076 /* InitializeConditions for UnitDelay: '<S115>/Unit_Delay2' */
1077 localDW->Unit_Delay2_DSTATE = localP->Unit_Delay2_InitialCondition;
1078
1079 /* InitializeConditions for UnitDelay: '<S116>/FixPt Unit Delay2' */
1080 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtUnitDelay2_InitialConditio;
1081
1082 /* InitializeConditions for UnitDelay: '<S116>/FixPt Unit Delay1' */
1083 localDW->FixPtUnitDelay1_DSTATE = localP->FixPtUnitDelay1_InitialConditio;
1084}
1085
1086/*
1087 * Disable for enable system:
1088 * '<S106>/Calculate_D_term'
1089 * '<S144>/Calculate_D_term'
1090 * '<S238>/Calculate_D_term'
1091 */
1092void L4_Calculate_D_term_Disable(B_Calculate_D_term_L4_MABX_T *localB,
1093 DW_Calculate_D_term_L4_MABX_T *localDW, P_Calculate_D_term_L4_MABX_T *localP)
1094{
1095 /* Disable for Outport: '<S110>/GPID_d_term' */
1096 localB->Subtract = localP->GPID_d_term_Y0;
1097 localDW->Calculate_D_term_MODE = false;
1098}
1099
1100/*
1101 * Start for enable system:
1102 * '<S106>/Calculate_D_term'
1103 * '<S144>/Calculate_D_term'
1104 * '<S238>/Calculate_D_term'
1105 */
1106void L4_M_Calculate_D_term_Start(DW_Calculate_D_term_L4_MABX_T *localDW)
1107{
1108 localDW->Calculate_D_term_MODE = false;
1109}
1110
1111/*
1112 * Outputs for enable system:
1113 * '<S106>/Calculate_D_term'
1114 * '<S144>/Calculate_D_term'
1115 * '<S238>/Calculate_D_term'
1116 */
1117void L4_MABX_Calculate_D_term(boolean_T rtu_Enable, real_T rtu_GPID_Kd, real_T
1118 rtu_GPID_dT, boolean_T rtu_F_GPID_reset_gov, real_T rtu_GPID_control_error,
1119 real_T rtu_GPID_T_filt_d, B_Calculate_D_term_L4_MABX_T *localB,
1120 DW_Calculate_D_term_L4_MABX_T *localDW, P_Calculate_D_term_L4_MABX_T *localP)
1121{
1122 real_T maxV;
1123 real_T u1;
1124 real_T u2;
1125
1126 /* Outputs for Enabled SubSystem: '<S106>/Calculate_D_term' incorporates:
1127 * EnablePort: '<S110>/Enable'
1128 */
1129 if (rtu_Enable) {
1130 if (!localDW->Calculate_D_term_MODE) {
1131 L4_M_Calculate_D_term_Reset(localDW, localP);
1132 localDW->Calculate_D_term_MODE = true;
1133 }
1134
1135 /* UnitDelay: '<S115>/Unit_Delay1' */
1136 localB->Unit_Delay1 = localDW->Unit_Delay1_DSTATE;
1137
1138 /* Logic: '<S115>/Logical Operator' */
1139 localB->LogicalOperator = (rtu_F_GPID_reset_gov || localB->Unit_Delay1);
1140
1141 /* MinMax: '<S115>/MinMax1' */
1142 if ((rtu_GPID_dT > rtu_GPID_T_filt_d) || rtIsNaN(rtu_GPID_T_filt_d)) {
1143 maxV = rtu_GPID_dT;
1144 } else {
1145 maxV = rtu_GPID_T_filt_d;
1146 }
1147
1148 localB->MinMax1 = maxV;
1149
1150 /* End of MinMax: '<S115>/MinMax1' */
1151
1152 /* Saturate: '<S115>/Saturation' */
1153 maxV = localB->MinMax1;
1154 u1 = localP->Saturation_LowerSat;
1155 u2 = localP->Saturation_UpperSat;
1156 if (maxV > u2) {
1157 localB->Saturation = u2;
1158 } else if (maxV < u1) {
1159 localB->Saturation = u1;
1160 } else {
1161 localB->Saturation = maxV;
1162 }
1163
1164 /* End of Saturate: '<S115>/Saturation' */
1165
1166 /* Product: '<S115>/Divide' */
1167 localB->Divide = rtu_GPID_dT / localB->Saturation;
1168
1169 /* Product: '<S115>/Product2' */
1170 localB->Product2 = rtu_GPID_control_error * localB->Divide;
1171
1172 /* Sum: '<S115>/Subtract1' incorporates:
1173 * Constant: '<S115>/Constant1'
1174 */
1175 localB->Subtract1 = localP->Constant1_Value - localB->Divide;
1176
1177 /* UnitDelay: '<S115>/Unit_Delay2' */
1178 localB->Unit_Delay2 = localDW->Unit_Delay2_DSTATE;
1179
1180 /* Product: '<S115>/Product1' */
1181 localB->Product1 = localB->Subtract1 * localB->Unit_Delay2;
1182
1183 /* Sum: '<S115>/Add1' */
1184 localB->Add1 = localB->Product2 + localB->Product1;
1185
1186 /* Outputs for Atomic SubSystem: '<S115>/If_Then_Else' */
1187 L4_MABX_If_Then_Else(localB->LogicalOperator, rtu_GPID_control_error,
1188 localB->Add1, &localB->If_Then_Else);
1189
1190 /* End of Outputs for SubSystem: '<S115>/If_Then_Else' */
1191
1192 /* Product: '<S110>/Divide' */
1193 localB->Divide_k = localB->If_Then_Else.Switch / rtu_GPID_dT * rtu_GPID_Kd;
1194
1195 /* UnitDelay: '<S116>/FixPt Unit Delay2' */
1196 localB->FixPtUnitDelay2 = localDW->FixPtUnitDelay2_DSTATE;
1197
1198 /* Logic: '<S116>/FixPt Logical Operator' */
1199 localB->FixPtLogicalOperator = (uint8_T)(rtu_F_GPID_reset_gov ||
1200 (localB->FixPtUnitDelay2 != 0));
1201
1202 /* UnitDelay: '<S116>/FixPt Unit Delay1' */
1203 localB->Xold = localDW->FixPtUnitDelay1_DSTATE;
1204
1205 /* Switch: '<S116>/Init' */
1206 if (localB->FixPtLogicalOperator != 0) {
1207 localB->Init = localB->Divide_k;
1208 } else {
1209 localB->Init = localB->Xold;
1210 }
1211
1212 /* End of Switch: '<S116>/Init' */
1213
1214 /* Sum: '<S110>/Subtract' */
1215 localB->Subtract = localB->Divide_k - localB->Init;
1216
1217 /* Switch: '<S116>/Reset' */
1218 localB->Xnew = localB->Divide_k;
1219 } else {
1220 if (localDW->Calculate_D_term_MODE) {
1221 L4_Calculate_D_term_Disable(localB, localDW, localP);
1222 }
1223 }
1224
1225 /* End of Outputs for SubSystem: '<S106>/Calculate_D_term' */
1226}
1227
1228/*
1229 * Update for enable system:
1230 * '<S106>/Calculate_D_term'
1231 * '<S144>/Calculate_D_term'
1232 * '<S238>/Calculate_D_term'
1233 */
1234void L4__Calculate_D_term_Update(B_Calculate_D_term_L4_MABX_T *localB,
1235 DW_Calculate_D_term_L4_MABX_T *localDW, P_Calculate_D_term_L4_MABX_T *localP)
1236{
1237 /* Update for Enabled SubSystem: '<S106>/Calculate_D_term' incorporates:
1238 * EnablePort: '<S110>/Enable'
1239 */
1240 if (localDW->Calculate_D_term_MODE) {
1241 /* Update for UnitDelay: '<S115>/Unit_Delay1' incorporates:
1242 * Constant: '<S115>/Constant'
1243 */
1244 localDW->Unit_Delay1_DSTATE = localP->Constant_Value;
1245
1246 /* Update for UnitDelay: '<S115>/Unit_Delay2' */
1247 localDW->Unit_Delay2_DSTATE = localB->If_Then_Else.Switch;
1248
1249 /* Update for UnitDelay: '<S116>/FixPt Unit Delay2' incorporates:
1250 * Constant: '<S116>/FixPt Constant'
1251 */
1252 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtConstant_Value;
1253
1254 /* Update for UnitDelay: '<S116>/FixPt Unit Delay1' */
1255 localDW->FixPtUnitDelay1_DSTATE = localB->Xnew;
1256 }
1257
1258 /* End of Update for SubSystem: '<S106>/Calculate_D_term' */
1259}
1260
1261/*
1262 * Output and update for atomic system:
1263 * '<S120>/If_Then_Else3'
1264 * '<S158>/If_Then_Else3'
1265 * '<S252>/If_Then_Else3'
1266 * '<S452>/If_Then_Else'
1267 * '<S1032>/If_Then_Else'
1268 */
1269void L4_MABX_If_Then_Else3(boolean_T rtu_If, boolean_T rtu_Then, boolean_T
1270 rtu_Else, B_If_Then_Else_L4_MABX_c_T *localB)
1271{
1272 /* Switch: '<S128>/Switch' */
1273 if (rtu_If) {
1274 localB->Switch = rtu_Then;
1275 } else {
1276 localB->Switch = rtu_Else;
1277 }
1278
1279 /* End of Switch: '<S128>/Switch' */
1280}
1281
1282/*
1283 * System initialize for enable system:
1284 * '<S106>/Calculate_I_term'
1285 * '<S144>/Calculate_I_term'
1286 * '<S238>/Calculate_I_term'
1287 */
1288void L4_MA_Calculate_I_term_Init(B_Calculate_I_term_L4_MABX_T *localB,
1289 DW_Calculate_I_term_L4_MABX_T *localDW, P_Calculate_I_term_L4_MABX_T *localP)
1290{
1291 /* InitializeConditions for UnitDelay: '<S122>/FixPt Unit Delay2' */
1292 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtUnitDelay2_InitialConditio;
1293
1294 /* InitializeConditions for UnitDelay: '<S122>/FixPt Unit Delay1' */
1295 localDW->FixPtUnitDelay1_DSTATE = localP->FixPtUnitDelay1_InitialConditio;
1296
1297 /* InitializeConditions for UnitDelay: '<S111>/Unit_Delay' */
1298 localDW->Unit_Delay_DSTATE = localP->Unit_Delay_InitialCondition;
1299
1300 /* SystemInitialize for Enabled SubSystem: '<S111>/Initialize_integral_term' */
1301 /* SystemInitialize for Outport: '<S119>/GPID_i_sum_error_init' */
1302 localB->Subtract2 = localP->GPID_i_sum_error_init_Y0;
1303
1304 /* End of SystemInitialize for SubSystem: '<S111>/Initialize_integral_term' */
1305
1306 /* SystemInitialize for Outport: '<S111>/GPID_i_term' */
1307 localB->If_Then_Else.Switch = localP->GPID_i_term_Y0;
1308
1309 /* SystemInitialize for Outport: '<S111>/F_GPID_hold_i_term' */
1310 localB->LogicalOperator2 = localP->F_GPID_hold_i_term_Y0;
1311}
1312
1313/*
1314 * System reset for enable system:
1315 * '<S106>/Calculate_I_term'
1316 * '<S144>/Calculate_I_term'
1317 * '<S238>/Calculate_I_term'
1318 */
1319void L4_M_Calculate_I_term_Reset(DW_Calculate_I_term_L4_MABX_T *localDW,
1320 P_Calculate_I_term_L4_MABX_T *localP)
1321{
1322 /* InitializeConditions for UnitDelay: '<S122>/FixPt Unit Delay2' */
1323 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtUnitDelay2_InitialConditio;
1324
1325 /* InitializeConditions for UnitDelay: '<S122>/FixPt Unit Delay1' */
1326 localDW->FixPtUnitDelay1_DSTATE = localP->FixPtUnitDelay1_InitialConditio;
1327
1328 /* InitializeConditions for UnitDelay: '<S111>/Unit_Delay' */
1329 localDW->Unit_Delay_DSTATE = localP->Unit_Delay_InitialCondition;
1330}
1331
1332/*
1333 * Disable for enable system:
1334 * '<S106>/Calculate_I_term'
1335 * '<S144>/Calculate_I_term'
1336 * '<S238>/Calculate_I_term'
1337 */
1338void L4_Calculate_I_term_Disable(B_Calculate_I_term_L4_MABX_T *localB,
1339 DW_Calculate_I_term_L4_MABX_T *localDW, P_Calculate_I_term_L4_MABX_T *localP)
1340{
1341 /* Disable for Outport: '<S111>/GPID_i_term' */
1342 localB->If_Then_Else.Switch = localP->GPID_i_term_Y0;
1343
1344 /* Disable for Outport: '<S111>/F_GPID_hold_i_term' */
1345 localB->LogicalOperator2 = localP->F_GPID_hold_i_term_Y0;
1346 localDW->Calculate_I_term_MODE = false;
1347}
1348
1349/*
1350 * Start for enable system:
1351 * '<S106>/Calculate_I_term'
1352 * '<S144>/Calculate_I_term'
1353 * '<S238>/Calculate_I_term'
1354 */
1355void L4_M_Calculate_I_term_Start(DW_Calculate_I_term_L4_MABX_T *localDW)
1356{
1357 localDW->Calculate_I_term_MODE = false;
1358}
1359
1360/*
1361 * Outputs for enable system:
1362 * '<S106>/Calculate_I_term'
1363 * '<S144>/Calculate_I_term'
1364 * '<S238>/Calculate_I_term'
1365 */
1366void L4_MABX_Calculate_I_term(boolean_T rtu_Enable, real_T rtu_GPID_p_term,
1367 real_T rtu_GPID_Ki, real_T rtu_GPID_actual_system_output, real_T
1368 rtu_GPID_control_error, boolean_T rtu_F_GPID_reset_gov, real_T rtu_GPID_dT,
1369 real_T rtu_GPID_feed_forward, boolean_T rtu_F_GPID_aw_cond_integration, real_T
1370 rtu_GPID_aw_hysteresis, boolean_T rtu_F_GPID_aw_hold_i_term, real_T
1371 rtu_GPID_output_unlim_prev, B_Calculate_I_term_L4_MABX_T *localB,
1372 DW_Calculate_I_term_L4_MABX_T *localDW, P_Calculate_I_term_L4_MABX_T *localP)
1373{
1374 /* Outputs for Enabled SubSystem: '<S106>/Calculate_I_term' incorporates:
1375 * EnablePort: '<S111>/Enable'
1376 */
1377 if (rtu_Enable) {
1378 if (!localDW->Calculate_I_term_MODE) {
1379 L4_M_Calculate_I_term_Reset(localDW, localP);
1380 localDW->Calculate_I_term_MODE = true;
1381 }
1382
1383 /* Outputs for Enabled SubSystem: '<S111>/Initialize_integral_term' incorporates:
1384 * EnablePort: '<S119>/Enable'
1385 */
1386 if (rtu_F_GPID_reset_gov) {
1387 /* Product: '<S119>/Product' */
1388 localB->Product_j = rtu_GPID_Ki * rtu_GPID_dT * rtu_GPID_control_error;
1389
1390 /* Sum: '<S119>/Subtract' */
1391 localB->Subtract_g = rtu_GPID_actual_system_output - rtu_GPID_feed_forward;
1392
1393 /* Sum: '<S119>/Subtract1' */
1394 localB->Subtract1_k = localB->Subtract_g - rtu_GPID_p_term;
1395
1396 /* Sum: '<S119>/Subtract2' */
1397 localB->Subtract2 = localB->Subtract1_k - localB->Product_j;
1398 }
1399
1400 /* End of Outputs for SubSystem: '<S111>/Initialize_integral_term' */
1401
1402 /* UnitDelay: '<S122>/FixPt Unit Delay2' */
1403 localB->FixPtUnitDelay2 = localDW->FixPtUnitDelay2_DSTATE;
1404
1405 /* Logic: '<S122>/FixPt Logical Operator' */
1406 localB->FixPtLogicalOperator = (uint8_T)(rtu_F_GPID_reset_gov ||
1407 (localB->FixPtUnitDelay2 != 0));
1408
1409 /* UnitDelay: '<S122>/FixPt Unit Delay1' */
1410 localB->Xold = localDW->FixPtUnitDelay1_DSTATE;
1411
1412 /* Switch: '<S122>/Init' */
1413 if (localB->FixPtLogicalOperator != 0) {
1414 localB->Init = localB->Subtract2;
1415 } else {
1416 localB->Init = localB->Xold;
1417 }
1418
1419 /* End of Switch: '<S122>/Init' */
1420
1421 /* Product: '<S118>/Product1' */
1422 localB->Product1 = rtu_GPID_Ki * rtu_GPID_control_error * rtu_GPID_dT;
1423
1424 /* Sum: '<S118>/Add' */
1425 localB->Add = localB->Init + localB->Product1;
1426
1427 /* UnitDelay: '<S111>/Unit_Delay' */
1428 localB->Unit_Delay = localDW->Unit_Delay_DSTATE;
1429
1430 /* Outputs for Atomic SubSystem: '<S120>/If_Then_Else' */
1431
1432 /* Constant: '<S120>/Constant' */
1433 L4_MABX_If_Then_Else(rtu_F_GPID_reset_gov, localP->Constant_Value,
1434 localB->Unit_Delay, &localB->If_Then_Else_c);
1435
1436 /* End of Outputs for SubSystem: '<S120>/If_Then_Else' */
1437
1438 /* Outputs for Atomic SubSystem: '<S120>/If_Then_Else2' */
1439 L4_MABX_If_Then_Else(rtu_F_GPID_reset_gov, rtu_GPID_actual_system_output,
1440 rtu_GPID_output_unlim_prev, &localB->If_Then_Else2);
1441
1442 /* End of Outputs for SubSystem: '<S120>/If_Then_Else2' */
1443
1444 /* Outputs for Atomic SubSystem: '<S120>/If_Then_Else1' */
1445 L4_MABX_If_Then_Else(rtu_F_GPID_aw_cond_integration,
1446 localB->If_Then_Else_c.Switch,
1447 localB->If_Then_Else2.Switch, &localB->If_Then_Else1);
1448
1449 /* End of Outputs for SubSystem: '<S120>/If_Then_Else1' */
1450
1451 /* Product: '<S120>/Product' */
1452 localB->Product = rtu_GPID_Ki * rtu_GPID_control_error *
1453 localB->If_Then_Else1.Switch;
1454
1455 /* RelationalOperator: '<S123>/Compare' incorporates:
1456 * Constant: '<S123>/Constant'
1457 */
1458 localB->Compare = (localB->Product > localP->Constant_Value_p);
1459
1460 /* RelationalOperator: '<S124>/Compare' incorporates:
1461 * Constant: '<S124>/Constant'
1462 */
1463 localB->Compare_n = (localB->Unit_Delay >= localP->Constant_Value_b);
1464
1465 /* Sum: '<S120>/Subtract' */
1466 localB->Subtract = localB->If_Then_Else2.Switch -
1467 rtu_GPID_actual_system_output;
1468
1469 /* RelationalOperator: '<S120>/Relational Operator1' */
1470 localB->RelationalOperator1 = (localB->Subtract > rtu_GPID_aw_hysteresis);
1471
1472 /* Sum: '<S120>/Subtract1' */
1473 localB->Subtract1 = rtu_GPID_actual_system_output -
1474 localB->If_Then_Else2.Switch;
1475
1476 /* RelationalOperator: '<S120>/Relational Operator2' */
1477 localB->RelationalOperator2 = (localB->Subtract1 > rtu_GPID_aw_hysteresis);
1478
1479 /* Outputs for Atomic SubSystem: '<S120>/If_Then_Else3' */
1480 L4_MABX_If_Then_Else3(localB->Compare_n, localB->RelationalOperator1,
1481 localB->RelationalOperator2, &localB->If_Then_Else3);
1482
1483 /* End of Outputs for SubSystem: '<S120>/If_Then_Else3' */
1484
1485 /* Logic: '<S120>/Logical Operator1' */
1486 localB->LogicalOperator1 = (localB->Compare && localB->If_Then_Else3.Switch);
1487
1488 /* Logic: '<S120>/Logical Operator2' */
1489 localB->LogicalOperator2 = (localB->LogicalOperator1 ||
1490 rtu_F_GPID_aw_hold_i_term);
1491
1492 /* Outputs for Atomic SubSystem: '<S118>/If_Then_Else' */
1493 L4_MABX_If_Then_Else(localB->LogicalOperator2, localB->Init, localB->Add,
1494 &localB->If_Then_Else);
1495
1496 /* End of Outputs for SubSystem: '<S118>/If_Then_Else' */
1497
1498 /* Switch: '<S122>/Reset' */
1499 if (rtu_F_GPID_reset_gov) {
1500 localB->Xnew = localB->Subtract2;
1501 } else {
1502 localB->Xnew = localB->If_Then_Else.Switch;
1503 }
1504
1505 /* End of Switch: '<S122>/Reset' */
1506 } else {
1507 if (localDW->Calculate_I_term_MODE) {
1508 L4_Calculate_I_term_Disable(localB, localDW, localP);
1509 }
1510 }
1511
1512 /* End of Outputs for SubSystem: '<S106>/Calculate_I_term' */
1513}
1514
1515/*
1516 * Update for enable system:
1517 * '<S106>/Calculate_I_term'
1518 * '<S144>/Calculate_I_term'
1519 * '<S238>/Calculate_I_term'
1520 */
1521void L4__Calculate_I_term_Update(B_Calculate_I_term_L4_MABX_T *localB,
1522 DW_Calculate_I_term_L4_MABX_T *localDW, P_Calculate_I_term_L4_MABX_T *localP)
1523{
1524 /* Update for Enabled SubSystem: '<S106>/Calculate_I_term' incorporates:
1525 * EnablePort: '<S111>/Enable'
1526 */
1527 if (localDW->Calculate_I_term_MODE) {
1528 /* Update for UnitDelay: '<S122>/FixPt Unit Delay2' incorporates:
1529 * Constant: '<S122>/FixPt Constant'
1530 */
1531 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtConstant_Value;
1532
1533 /* Update for UnitDelay: '<S122>/FixPt Unit Delay1' */
1534 localDW->FixPtUnitDelay1_DSTATE = localB->Xnew;
1535
1536 /* Update for UnitDelay: '<S111>/Unit_Delay' */
1537 localDW->Unit_Delay_DSTATE = localB->If_Then_Else.Switch;
1538 }
1539
1540 /* End of Update for SubSystem: '<S106>/Calculate_I_term' */
1541}
1542
1543/* Output and update for atomic system: '<S98>/If_Then_Else' */
1544void L4_MABX_If_Then_Else_l(boolean_T rtu_If, boolean_T rtu_Then, boolean_T
1545 rtu_Else, B_If_Then_Else_L4_MABX_m_T *localB)
1546{
1547 /* Switch: '<S176>/Switch' */
1548 if (rtu_If) {
1549 localB->Switch = rtu_Then;
1550 } else {
1551 localB->Switch = rtu_Else;
1552 }
1553
1554 /* End of Switch: '<S176>/Switch' */
1555}
1556
1557/*
1558 * Output and update for atomic system:
1559 * '<S177>/If_Then_Else'
1560 * '<S177>/If_Then_Else1'
1561 * '<S178>/If_Then_Else'
1562 * '<S178>/If_Then_Else1'
1563 * '<S274>/If_Then_Else'
1564 * '<S274>/If_Then_Else1'
1565 * '<S347>/If_Then_Else'
1566 * '<S344>/If_Then_Else'
1567 * '<S353>/If_Then_Else'
1568 * '<S81>/If_Then_Else'
1569 * '<S969>/If_Then_Else1'
1570 */
1571void L4_MABX_If_Then_Else_g(boolean_T rtu_If, real_T rtu_Then, real_T rtu_Else,
1572 B_If_Then_Else_L4_MABX_k_T *localB)
1573{
1574 /* Switch: '<S179>/Switch' */
1575 if (rtu_If) {
1576 localB->Switch = rtu_Then;
1577 } else {
1578 localB->Switch = rtu_Else;
1579 }
1580
1581 /* End of Switch: '<S179>/Switch' */
1582}
1583
1584/* Output and update for atomic system: '<S299>/If_Then_Else' */
1585void L4_MABX_If_Then_Else_c(real_T rtu_If, real_T rtu_Then, real_T rtu_Else,
1586 B_If_Then_Else_L4_MABX_mf_T *localB)
1587{
1588 /* Switch: '<S307>/Switch' */
1589 if (rtu_If != 0.0) {
1590 localB->Switch = rtu_Then;
1591 } else {
1592 localB->Switch = rtu_Else;
1593 }
1594
1595 /* End of Switch: '<S307>/Switch' */
1596}
1597
1598/* Output and update for atomic system: '<S337>/If_Then_Else' */
1599void L4_MABX_If_Then_Else_m(boolean_T rtu_If, real_T rtu_Then, real_T rtu_Then_l,
1600 real_T rtu_Then_f, real_T rtu_Else, real_T rtu_Else_i, real_T rtu_Else_k,
1601 B_If_Then_Else_L4_MABX_h_T *localB)
1602{
1603 /* Switch: '<S339>/Switch' */
1604 if (rtu_If) {
1605 localB->Vehicle_speed_target = rtu_Then;
1606 localB->Vehicle_speed = rtu_Then_l;
1607 localB->Distance_m = rtu_Then_f;
1608 } else {
1609 localB->Vehicle_speed_target = rtu_Else;
1610 localB->Vehicle_speed = rtu_Else_i;
1611 localB->Distance_m = rtu_Else_k;
1612 }
1613
1614 /* End of Switch: '<S339>/Switch' */
1615}
1616
1617/* System initialize for function-call system: '<S386>/Background_Task' */
1618void L4_MAB_Background_Task_Init(void)
1619{
1620 /* InitializeConditions for S-Function (dsa_tcpip_bkg_sfcn): '<S395>/dsa_tcpip_bkg_sfcn' */
1621 /* Level2 S-Function Block: '<S395>/dsa_tcpip_bkg_sfcn' (dsa_tcpip_bkg_sfcn) */
1622 {
1623 SimStruct *rts = L4_MABX_M->childSfunctions[0];
1624 sfcnInitializeConditions(rts);
1625 if (ssGetErrorStatus(rts) != (NULL))
1626 return;
1627 }
1628}
1629
1630/* System reset for function-call system: '<S386>/Background_Task' */
1631void L4_MA_Background_Task_Reset(void)
1632{
1633 /* InitializeConditions for S-Function (dsa_tcpip_bkg_sfcn): '<S395>/dsa_tcpip_bkg_sfcn' */
1634 /* Level2 S-Function Block: '<S395>/dsa_tcpip_bkg_sfcn' (dsa_tcpip_bkg_sfcn) */
1635 {
1636 SimStruct *rts = L4_MABX_M->childSfunctions[0];
1637 sfcnInitializeConditions(rts);
1638 if (ssGetErrorStatus(rts) != (NULL))
1639 return;
1640 }
1641}
1642
1643/* Start for function-call system: '<S386>/Background_Task' */
1644void L4_MA_Background_Task_Start(void)
1645{
1646 /* Start for S-Function (dsa_tcpip_bkg_sfcn): '<S395>/dsa_tcpip_bkg_sfcn' */
1647 /* Level2 S-Function Block: '<S395>/dsa_tcpip_bkg_sfcn' (dsa_tcpip_bkg_sfcn) */
1648 {
1649 SimStruct *rts = L4_MABX_M->childSfunctions[0];
1650 sfcnStart(rts);
1651 if (ssGetErrorStatus(rts) != (NULL))
1652 return;
1653 }
1654}
1655
1656/* Output and update for function-call system: '<S386>/Background_Task' */
1657void L4_MABX_Background_Task(void)
1658{
1659 /* S-Function (dsa_tcpip_bkg_sfcn): '<S395>/dsa_tcpip_bkg_sfcn' */
1660
1661 /* Level2 S-Function Block: '<S395>/dsa_tcpip_bkg_sfcn' (dsa_tcpip_bkg_sfcn) */
1662 {
1663 SimStruct *rts = L4_MABX_M->childSfunctions[0];
1664 sfcnOutputs(rts,9);
1665 }
1666}
1667
1668/* Termination for function-call system: '<S386>/Background_Task' */
1669void L4_MAB_Background_Task_Term(void)
1670{
1671 /* Terminate for S-Function (dsa_tcpip_bkg_sfcn): '<S395>/dsa_tcpip_bkg_sfcn' */
1672 /* Level2 S-Function Block: '<S395>/dsa_tcpip_bkg_sfcn' (dsa_tcpip_bkg_sfcn) */
1673 {
1674 SimStruct *rts = L4_MABX_M->childSfunctions[0];
1675 sfcnTerminate(rts);
1676 }
1677}
1678
1679/* System initialize for function-call system: '<S386>/IRQ_Level_2_SW_INT' */
1680void L4__IRQ_Level_2_SW_INT_Init(void)
1681{
1682 /* InitializeConditions for S-Function (dsa_tcpip_irq_l2_sfcn): '<S396>/dsa_tcpip_irq_l2_sfcn' */
1683 /* Level2 S-Function Block: '<S396>/dsa_tcpip_irq_l2_sfcn' (dsa_tcpip_irq_l2_sfcn) */
1684 {
1685 SimStruct *rts = L4_MABX_M->childSfunctions[1];
1686 sfcnInitializeConditions(rts);
1687 if (ssGetErrorStatus(rts) != (NULL))
1688 return;
1689 }
1690}
1691
1692/* System reset for function-call system: '<S386>/IRQ_Level_2_SW_INT' */
1693void L4_IRQ_Level_2_SW_INT_Reset(void)
1694{
1695 /* InitializeConditions for S-Function (dsa_tcpip_irq_l2_sfcn): '<S396>/dsa_tcpip_irq_l2_sfcn' */
1696 /* Level2 S-Function Block: '<S396>/dsa_tcpip_irq_l2_sfcn' (dsa_tcpip_irq_l2_sfcn) */
1697 {
1698 SimStruct *rts = L4_MABX_M->childSfunctions[1];
1699 sfcnInitializeConditions(rts);
1700 if (ssGetErrorStatus(rts) != (NULL))
1701 return;
1702 }
1703}
1704
1705/* Start for function-call system: '<S386>/IRQ_Level_2_SW_INT' */
1706void L4_IRQ_Level_2_SW_INT_Start(void)
1707{
1708 /* Start for S-Function (dsa_tcpip_irq_l2_sfcn): '<S396>/dsa_tcpip_irq_l2_sfcn' */
1709 /* Level2 S-Function Block: '<S396>/dsa_tcpip_irq_l2_sfcn' (dsa_tcpip_irq_l2_sfcn) */
1710 {
1711 SimStruct *rts = L4_MABX_M->childSfunctions[1];
1712 sfcnStart(rts);
1713 if (ssGetErrorStatus(rts) != (NULL))
1714 return;
1715 }
1716}
1717
1718/* Output and update for function-call system: '<S386>/IRQ_Level_2_SW_INT' */
1719void L4_MABX_IRQ_Level_2_SW_INT(void)
1720{
1721 /* S-Function (dsa_tcpip_irq_l2_sfcn): '<S396>/dsa_tcpip_irq_l2_sfcn' */
1722
1723 /* Level2 S-Function Block: '<S396>/dsa_tcpip_irq_l2_sfcn' (dsa_tcpip_irq_l2_sfcn) */
1724 {
1725 SimStruct *rts = L4_MABX_M->childSfunctions[1];
1726 sfcnOutputs(rts,10);
1727 }
1728}
1729
1730/* Termination for function-call system: '<S386>/IRQ_Level_2_SW_INT' */
1731void L4__IRQ_Level_2_SW_INT_Term(void)
1732{
1733 /* Terminate for S-Function (dsa_tcpip_irq_l2_sfcn): '<S396>/dsa_tcpip_irq_l2_sfcn' */
1734 /* Level2 S-Function Block: '<S396>/dsa_tcpip_irq_l2_sfcn' (dsa_tcpip_irq_l2_sfcn) */
1735 {
1736 SimStruct *rts = L4_MABX_M->childSfunctions[1];
1737 sfcnTerminate(rts);
1738 }
1739}
1740
1741/* System initialize for function-call system: '<S397>/Tcp Input Processing' */
1742void L4__TcpInputProcessing_Init(void)
1743{
1744 /* SystemInitialize for S-Function (rti_commonblock): '<S399>/S-Function1' incorporates:
1745 * SubSystem: '<S386>/IRQ_Level_2_SW_INT'
1746 */
1747 L4__IRQ_Level_2_SW_INT_Init();
1748
1749 /* End of SystemInitialize for S-Function (rti_commonblock): '<S399>/S-Function1' */
1750}
1751
1752/* System reset for function-call system: '<S397>/Tcp Input Processing' */
1753void L4_TcpInputProcessing_Reset(void)
1754{
1755 /* SystemReset for S-Function (rti_commonblock): '<S399>/S-Function1' incorporates:
1756 * SubSystem: '<S386>/IRQ_Level_2_SW_INT'
1757 */
1758 L4_IRQ_Level_2_SW_INT_Reset();
1759
1760 /* End of SystemReset for S-Function (rti_commonblock): '<S399>/S-Function1' */
1761}
1762
1763/* Start for function-call system: '<S397>/Tcp Input Processing' */
1764void L4_TcpInputProcessing_Start(void)
1765{
1766 /* Start for S-Function (rti_commonblock): '<S399>/S-Function1' incorporates:
1767 * SubSystem: '<S386>/IRQ_Level_2_SW_INT'
1768 */
1769 L4_IRQ_Level_2_SW_INT_Start();
1770
1771 /* End of Start for S-Function (rti_commonblock): '<S399>/S-Function1' */
1772}
1773
1774/* Output and update for function-call system: '<S397>/Tcp Input Processing' */
1775void L4_MABX_TcpInputProcessing(void)
1776{
1777 /* S-Function (rti_commonblock): '<S399>/S-Function1' */
1778
1779 /* This comment workarounds a code generation problem */
1780
1781 /* dSPACE Software Interrupt Block: <S397>/Tcp Input Processing */
1782 rtk_schedule_task(S_SOFTTASK,0);
1783
1784 /* End of Outputs for S-Function (rti_commonblock): '<S399>/S-Function1' */
1785}
1786
1787/*
1788 * Forced non-inlined (FNI) function call stub
1789 * for '<S397>/Tcp Input Processing'
1790 */
1791boolean_T L4_MABX_TcpInputProcessingFNI(RT_MODEL_L4_MABX_T *const L4_MABX_M,
1792 int_T controlPortIdx, int_T tid)
1793{
1794 L4_MABX_TcpInputProcessing();
1795 UNUSED_PARAMETER(L4_MABX_M);
1796 UNUSED_PARAMETER(controlPortIdx);
1797 UNUSED_PARAMETER(tid);
1798 return (1);
1799}
1800
1801/*
1802 * Forced non-inlined (FNI) function call stub
1803 * for '<S397>/Tcp Input Processing'
1804 */
1805boolean_T L4_TcpInputProcessing_ResetFNI(RT_MODEL_L4_MABX_T *const L4_MABX_M,
1806 int_T controlPortIdx, int_T tid)
1807{
1808 UNUSED_PARAMETER(L4_MABX_M);
1809 UNUSED_PARAMETER(controlPortIdx);
1810 UNUSED_PARAMETER(tid);
1811 return (1);
1812}
1813
1814/* Termination for function-call system: '<S397>/Tcp Input Processing' */
1815void L4__TcpInputProcessing_Term(void)
1816{
1817 /* Terminate for S-Function (rti_commonblock): '<S399>/S-Function1' incorporates:
1818 * SubSystem: '<S386>/IRQ_Level_2_SW_INT'
1819 */
1820 L4__IRQ_Level_2_SW_INT_Term();
1821
1822 /* End of Terminate for S-Function (rti_commonblock): '<S399>/S-Function1' */
1823}
1824
1825/* System initialize for function-call system: '<S386>/Interrupt_Task' */
1826void L4_MABX_Interrupt_Task_Init(void)
1827{
1828 /* InitializeConditions for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1829
1830 /* Level2 S-Function Block: '<S397>/dsa_tcpip_irq_l1_sfcn' (dsa_tcpip_irq_l1_sfcn) */
1831 {
1832 SimStruct *rts = L4_MABX_M->childSfunctions[2];
1833 sfcnInitializeConditions(rts);
1834 if (ssGetErrorStatus(rts) != (NULL))
1835 return;
1836 }
1837
1838 /* End of InitializeConditions for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1839
1840 /* SystemInitialize for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' incorporates:
1841 * SubSystem: '<S397>/Tcp Input Processing'
1842 */
1843 L4__TcpInputProcessing_Init();
1844
1845 /* End of SystemInitialize for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1846}
1847
1848/* System reset for function-call system: '<S386>/Interrupt_Task' */
1849void L4_MAB_Interrupt_Task_Reset(void)
1850{
1851 /* InitializeConditions for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1852
1853 /* Level2 S-Function Block: '<S397>/dsa_tcpip_irq_l1_sfcn' (dsa_tcpip_irq_l1_sfcn) */
1854 {
1855 SimStruct *rts = L4_MABX_M->childSfunctions[2];
1856 sfcnInitializeConditions(rts);
1857 if (ssGetErrorStatus(rts) != (NULL))
1858 return;
1859 }
1860
1861 /* End of InitializeConditions for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1862
1863 /* SystemReset for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' incorporates:
1864 * SubSystem: '<S397>/Tcp Input Processing'
1865 */
1866 L4_TcpInputProcessing_Reset();
1867
1868 /* End of SystemReset for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1869}
1870
1871/* Start for function-call system: '<S386>/Interrupt_Task' */
1872void L4_MAB_Interrupt_Task_Start(void)
1873{
1874 /* Start for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' incorporates:
1875 * SubSystem: '<S397>/Tcp Input Processing'
1876 */
1877 L4_TcpInputProcessing_Start();
1878
1879 /* Level2 S-Function Block: '<S397>/dsa_tcpip_irq_l1_sfcn' (dsa_tcpip_irq_l1_sfcn) */
1880 {
1881 SimStruct *rts = L4_MABX_M->childSfunctions[2];
1882 sfcnStart(rts);
1883 if (ssGetErrorStatus(rts) != (NULL))
1884 return;
1885 }
1886
1887 /* End of Start for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1888}
1889
1890/* Output and update for function-call system: '<S386>/Interrupt_Task' */
1891void L4_MABX_Interrupt_Task(void)
1892{
1893 /* S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1894
1895 /* Level2 S-Function Block: '<S397>/dsa_tcpip_irq_l1_sfcn' (dsa_tcpip_irq_l1_sfcn) */
1896 {
1897 SimStruct *rts = L4_MABX_M->childSfunctions[2];
1898 sfcnOutputs(rts,11);
1899 }
1900
1901 /* End of Outputs for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1902}
1903
1904/* Termination for function-call system: '<S386>/Interrupt_Task' */
1905void L4_MABX_Interrupt_Task_Term(void)
1906{
1907 /* Terminate for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1908
1909 /* Level2 S-Function Block: '<S397>/dsa_tcpip_irq_l1_sfcn' (dsa_tcpip_irq_l1_sfcn) */
1910 {
1911 SimStruct *rts = L4_MABX_M->childSfunctions[2];
1912 sfcnTerminate(rts);
1913 }
1914
1915 /* End of Terminate for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1916
1917 /* Terminate for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' incorporates:
1918 * SubSystem: '<S397>/Tcp Input Processing'
1919 */
1920 L4__TcpInputProcessing_Term();
1921
1922 /* End of Terminate for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1923}
1924
1925/* Output and update for atomic system: '<S715>/If_Then_Else' */
1926void L4_MABX_If_Then_Else_p(boolean_T rtu_If, real_T rtu_Then, real_T rtu_Else)
1927{
1928 /* Switch: '<S720>/Switch' */
1929 if (rtu_If) {
1930 Pedal_pwm_position = rtu_Then;
1931 } else {
1932 Pedal_pwm_position = rtu_Else;
1933 }
1934
1935 /* End of Switch: '<S720>/Switch' */
1936}
1937
1938/* System initialize for function-call system: '<S403>/IncrementTimer' */
1939void L4_MABX_IncrementTimer_Init(void)
1940{
1941 /* InitializeConditions for UnitDelay: '<S802>/Unit_Delay' */
1942 L4_MABX_DW.Unit_Delay_DSTATE_k = L4_MABX_P.Unit_Delay_InitialCondition_a;
1943
1944 /* SystemInitialize for Outport: '<S802>/Out1' */
1945 L4_MABX_B.Add = L4_MABX_P.Out1_Y0_d;
1946}
1947
1948/* System reset for function-call system: '<S403>/IncrementTimer' */
1949void L4_MAB_IncrementTimer_Reset(void)
1950{
1951 /* InitializeConditions for UnitDelay: '<S802>/Unit_Delay' */
1952 L4_MABX_DW.Unit_Delay_DSTATE_k = L4_MABX_P.Unit_Delay_InitialCondition_a;
1953}
1954
1955/* Output and update for function-call system: '<S403>/IncrementTimer' */
1956void L4_MABX_IncrementTimer(void)
1957{
1958 /* UnitDelay: '<S802>/Unit_Delay' */
1959 L4_MABX_B.Unit_Delay_k = L4_MABX_DW.Unit_Delay_DSTATE_k;
1960
1961 /* Sum: '<S802>/Add' incorporates:
1962 * Constant: '<S802>/Constant1'
1963 */
1964 L4_MABX_B.Add = L4_MABX_P.Constant1_Value_mr + L4_MABX_B.Unit_Delay_k;
1965
1966 /* Update for UnitDelay: '<S802>/Unit_Delay' */
1967 L4_MABX_DW.Unit_Delay_DSTATE_k = L4_MABX_B.Add;
1968}
1969
1970/*
1971 * Output and update for enable system:
1972 * '<S932>/ALL_CTRL_DISABLED'
1973 * '<S932>/DEFAULT_TRQ_CTRL_MODE'
1974 * '<S932>/EXT_TRQ_CTRL_MODE_A'
1975 * '<S932>/EXT_TRQ_CTRL_MODE_B'
1976 * '<S932>/EXT_TRQ_CTRL_MODE_C'
1977 */
1978void L4_MABX_ALL_CTRL_DISABLED(boolean_T rtu_Enable, int32_T *rty_Out1,
1979 P_ALL_CTRL_DISABLED_L4_MABX_T *localP)
1980{
1981 /* Outputs for Enabled SubSystem: '<S932>/ALL_CTRL_DISABLED' incorporates:
1982 * EnablePort: '<S947>/Enable'
1983 */
1984 if (rtu_Enable) {
1985 /* SignalConversion: '<S947>/OutportBufferForOut1' incorporates:
1986 * Constant: '<S947>/Constant'
1987 */
1988 *rty_Out1 = localP->Constant_Value;
1989 }
1990
1991 /* End of Outputs for SubSystem: '<S932>/ALL_CTRL_DISABLED' */
1992}
1993
1994/* Output and update for atomic system: '<S970>/If_Then_Else' */
1995void L4_MABX_If_Then_Else_o(boolean_T rtu_If, real_T rtu_Then,
1996 ENUM_XBR_EBI_MODE_T rtu_Then_l, ENUM_XBR_PRIORITY_T rtu_Then_f,
1997 ENUM_XBR_CONTROL_MODE_T rtu_Then_i, ENUM_XBR_PASS_THROUGH_ACTIVE_T rtu_Then_k,
1998 real_T rtu_Then_ky, real_T rtu_Then_o, real_T rtu_Else, ENUM_XBR_EBI_MODE_T
1999 rtu_Else_b, ENUM_XBR_PRIORITY_T rtu_Else_g, ENUM_XBR_CONTROL_MODE_T rtu_Else_h,
2000 ENUM_XBR_PASS_THROUGH_ACTIVE_T rtu_Else_gy, real_T rtu_Else_e, real_T
2001 rtu_Else_n, B_If_Then_Else_L4_MABX_d_T *localB)
2002{
2003 /* Switch: '<S994>/Switch' */
2004 if (rtu_If) {
2005 localB->XBRExternalAccelDemand = rtu_Then;
2006 localB->XBREnduranceBrakeIntegrationMod = rtu_Then_l;
2007 localB->XBRPriority = rtu_Then_f;
2008 localB->XBRControlMode = rtu_Then_i;
2009 localB->XBRPassThroughActive = rtu_Then_k;
2010 localB->XBRUrgency = rtu_Then_ky;
2011 localB->XBRPassThroughEnabled = rtu_Then_o;
2012 } else {
2013 localB->XBRExternalAccelDemand = rtu_Else;
2014 localB->XBREnduranceBrakeIntegrationMod = rtu_Else_b;
2015 localB->XBRPriority = rtu_Else_g;
2016 localB->XBRControlMode = rtu_Else_h;
2017 localB->XBRPassThroughActive = rtu_Else_gy;
2018 localB->XBRUrgency = rtu_Else_e;
2019 localB->XBRPassThroughEnabled = rtu_Else_n;
2020 }
2021
2022 /* End of Switch: '<S994>/Switch' */
2023}
2024
2025static int32_T safe_cast_to_ENUM_XPR_CONTROL_M(int32_T input)
2026{
2027 int32_T y;
2028
2029 /* Initialize output value to default value for ENUM_XPR_CONTROL_MODE_T (NO_BRAKE_DEMAND) */
2030 y = 0;
2031 if (((input >= 0) && (input <= 3)) || ((input >= 13) && (input <= 15))) {
2032 /* Set output value to input value if it is a member of ENUM_XPR_CONTROL_MODE_T */
2033 y = input;
2034 }
2035
2036 return y;
2037}
2038
2039static int32_T safe_cast_to_ENUM_XPR_ERROR_STA(int32_T input)
2040{
2041 int32_T y;
2042
2043 /* Initialize output value to default value for ENUM_XPR_ERROR_STATE_T (XPR_OK) */
2044 y = 0;
2045 if ((input >= 0) && (input <= 3)) {
2046 /* Set output value to input value if it is a member of ENUM_XPR_ERROR_STATE_T */
2047 y = input;
2048 }
2049
2050 return y;
2051}
2052
2053/* Function for Chart: '<S205>/Relay_control_state_machine' */
2054static void L4_MABX_enter_atomic_INITIAL(void)
2055{
2056 /* Entry 'INITIAL': '<S212>:12' */
2057 L4_MABX_B.F_Ignition_relay_command_i = false;
2058 L4_MABX_B.F_Inverter_relay_command_p = false;
2059 L4_MABX_B.F_MABX_relay_command_n = false;
2060 L4_MABX_B.F_Sensor_relay_command_k = false;
2061 L4_MABX_DW.IGN_RELAY_ON_DELAY_SECS_APV =
2062 L4_MABX_B.TmpSignalConversionAtSFunctionI[0];
2063 L4_MABX_DW.INVERTER_RELAY_ON_DELAY_SECS_AP =
2064 L4_MABX_B.TmpSignalConversionAtSFunctionI[1];
2065 L4_MABX_DW.MABX_RELAY_ON_DELAY_SECS_APV =
2066 L4_MABX_B.TmpSignalConversionAtSFunctionI[2];
2067 L4_MABX_DW.SENSOR_RELAY_ON_DELAY_SECS_APV =
2068 L4_MABX_B.TmpSignalConversionAtSFunctionI[3];
2069 L4_MABX_DW.IGN_RELAY_OFF_DELAY_SECS_APV =
2070 L4_MABX_B.TmpSignalConversionAtSFunctio_k[0];
2071 L4_MABX_DW.INVERTER_RELAY_OFF_DELAY_SECS_A =
2072 L4_MABX_B.TmpSignalConversionAtSFunctio_k[1];
2073 L4_MABX_DW.MABX_RELAY_OFF_DELAY_SECS_APV =
2074 L4_MABX_B.TmpSignalConversionAtSFunctio_k[2];
2075 L4_MABX_DW.SENSOR_RELAY_OFF_DELAY_SECS_APV =
2076 L4_MABX_B.TmpSignalConversionAtSFunctio_k[3];
2077}
2078
2079real_T rt_atan2d_snf(real_T u0, real_T u1)
2080{
2081 real_T y;
2082 int32_T tmp;
2083 int32_T tmp_0;
2084 if (rtIsNaN(u0) || rtIsNaN(u1)) {
2085 y = (rtNaN);
2086 } else if (rtIsInf(u0) && rtIsInf(u1)) {
2087 if (u1 > 0.0) {
2088 tmp = 1;
2089 } else {
2090 tmp = -1;
2091 }
2092
2093 if (u0 > 0.0) {
2094 tmp_0 = 1;
2095 } else {
2096 tmp_0 = -1;
2097 }
2098
2099 y = atan2(tmp_0, tmp);
2100 } else if (u1 == 0.0) {
2101 if (u0 > 0.0) {
2102 y = RT_PI / 2.0;
2103 } else if (u0 < 0.0) {
2104 y = -(RT_PI / 2.0);
2105 } else {
2106 y = 0.0;
2107 }
2108 } else {
2109 y = atan2(u0, u1);
2110 }
2111
2112 return y;
2113}
2114
2115real_T rt_powd_snf(real_T u0, real_T u1)
2116{
2117 real_T y;
2118 real_T tmp;
2119 real_T tmp_0;
2120 if (rtIsNaN(u0) || rtIsNaN(u1)) {
2121 y = (rtNaN);
2122 } else {
2123 tmp = fabs(u0);
2124 tmp_0 = fabs(u1);
2125 if (rtIsInf(u1)) {
2126 if (tmp == 1.0) {
2127 y = 1.0;
2128 } else if (tmp > 1.0) {
2129 if (u1 > 0.0) {
2130 y = (rtInf);
2131 } else {
2132 y = 0.0;
2133 }
2134 } else if (u1 > 0.0) {
2135 y = 0.0;
2136 } else {
2137 y = (rtInf);
2138 }
2139 } else if (tmp_0 == 0.0) {
2140 y = 1.0;
2141 } else if (tmp_0 == 1.0) {
2142 if (u1 > 0.0) {
2143 y = u0;
2144 } else {
2145 y = 1.0 / u0;
2146 }
2147 } else if (u1 == 2.0) {
2148 y = u0 * u0;
2149 } else if ((u1 == 0.5) && (u0 >= 0.0)) {
2150 y = sqrt(u0);
2151 } else if ((u0 < 0.0) && (u1 > floor(u1))) {
2152 y = (rtNaN);
2153 } else {
2154 y = pow(u0, u1);
2155 }
2156 }
2157
2158 return y;
2159}
2160
2161/* Function for Chart: '<S331>/VehicleSpeedSetpointDynamicCalculation' */
2162static void L4_MABX_Calculate_abc(void)
2163{
2164 /* MATLAB Function 'Calculate_abc': '<S346>:158' */
2165 /* Graphical Function 'Calculate_abc': '<S346>:158' */
2166 /* '<S346>:160:1' */
2167 L4_MABX_DW.a = L4_MABX_DW.Jerk56 - L4_MABX_DW.Jerk12;
2168
2169 /* '<S346>:160:1' */
2170 L4_MABX_DW.b = ((L4_MABX_DW.AccelerationFinalLimited * L4_MABX_DW.Jerk12 -
2171 L4_MABX_DW.AccelerationInitialLimited * L4_MABX_DW.Jerk56) -
2172 L4_MABX_DW.Jerk12 * L4_MABX_DW.Jerk56 * L4_MABX_DW.TimeFinal) *
2173 2.0;
2174
2175 /* '<S346>:160:3' */
2176 L4_MABX_DW.c = (2.0 * L4_MABX_DW.Jerk12 * L4_MABX_DW.Jerk56 *
2177 (L4_MABX_DW.VelocityFinalLimited -
2178 L4_MABX_DW.VelocityInitialLimited) +
2179 L4_MABX_DW.AccelerationInitialLimited *
2180 L4_MABX_DW.AccelerationInitialLimited * L4_MABX_DW.Jerk56) -
2181 L4_MABX_DW.AccelerationFinalLimited * L4_MABX_DW.AccelerationFinalLimited *
2182 L4_MABX_DW.Jerk12;
2183}
2184
2185/* Function for Chart: '<S331>/VehicleSpeedSetpointDynamicCalculation' */
2186static void L4_MABX_CalculateAlternate_abc(void)
2187{
2188 /* MATLAB Function 'CalculateAlternate_abc': '<S346>:286' */
2189 /* Graphical Function 'CalculateAlternate_abc': '<S346>:286' */
2190 /* '<S346>:285:1' */
2191 L4_MABX_DW.a = 1.0;
2192
2193 /* '<S346>:285:1' */
2194 L4_MABX_DW.b = ((L4_MABX_DW.TimeFinal - 0.005) * L4_MABX_DW.Jerk56 -
2195 L4_MABX_DW.AccelerationFinalLimited) * 2.0;
2196
2197 /* '<S346>:285:3' */
2198 L4_MABX_DW.c = 2.0 * L4_MABX_DW.Jerk56 * (L4_MABX_DW.VelocityInitialLimited -
2199 L4_MABX_DW.VelocityFinalLimited) + L4_MABX_DW.AccelerationFinalLimited *
2200 L4_MABX_DW.AccelerationFinalLimited;
2201}
2202
2203/* Function for Chart: '<S331>/VehicleSpeedSetpointDynamicCalculation' */
2204static void L4_MABX_CalculateAcceleration34(void)
2205{
2206 real_T u;
2207 real_T u0;
2208 real_T u1;
2209
2210 /* MATLAB Function 'CalculateAcceleration34': '<S346>:167' */
2211 /* Graphical Function 'CalculateAcceleration34': '<S346>:167' */
2212 /* '<S346>:186:1' */
2213 /* '<S346>:186:5' */
2214 /* '<S346>:186:8' */
2215 u = L4_MABX_DW.Jerk12;
2216 if (u < 0.0) {
2217 u = -1.0;
2218 } else if (u > 0.0) {
2219 u = 1.0;
2220 } else if (u == 0.0) {
2221 u = 0.0;
2222 } else {
2223 u = (rtNaN);
2224 }
2225
2226 u0 = fabs(L4_MABX_DW.Jerk12);
2227 u1 = fabs(((((L4_MABX_DW.AccelerationInitialLimited *
2228 L4_MABX_DW.AccelerationFinalLimited -
2229 L4_MABX_DW.AccelerationInitialLimited * L4_MABX_DW.Jerk56 *
2230 L4_MABX_DW.TimeFinal) + (L4_MABX_DW.VelocityFinalLimited -
2231 L4_MABX_DW.VelocityInitialLimited) * L4_MABX_DW.Jerk56) * 2.0 -
2232 L4_MABX_DW.AccelerationInitialLimited *
2233 L4_MABX_DW.AccelerationInitialLimited) -
2234 L4_MABX_DW.AccelerationFinalLimited *
2235 L4_MABX_DW.AccelerationFinalLimited) /
2236 (((L4_MABX_DW.VelocityFinalLimited -
2237 L4_MABX_DW.VelocityInitialLimited) -
2238 L4_MABX_DW.AccelerationFinalLimited * L4_MABX_DW.TimeFinal) * 2.0
2239 + L4_MABX_DW.TimeFinal * L4_MABX_DW.TimeFinal * L4_MABX_DW.Jerk56))
2240 + 0.001;
2241 if ((u0 > u1) || rtIsNaN(u1)) {
2242 u1 = u0;
2243 }
2244
2245 L4_MABX_DW.Jerk12 = u * u1;
2246
2247 /* '<S346>:186:11' */
2248 u1 = L4_MABX_DW.Jerk12;
2249 if ((10.0 < u1) || rtIsNaN(u1)) {
2250 u1 = 10.0;
2251 }
2252
2253 if ((-10.0 > u1) || rtIsNaN(u1)) {
2254 L4_MABX_DW.Jerk12 = -10.0;
2255 } else {
2256 L4_MABX_DW.Jerk12 = u1;
2257 }
2258
2259 /* '<S346>:186:11' */
2260 L4_MABX_Calculate_abc();
2261
2262 /* '<S346>:187:1' */
2263 if (fabs(L4_MABX_DW.a) < 0.01) {
2264 /* '<S346>:188:1' */
2265 L4_MABX_DW.Jerk12 = L4_MABX_DW.Jerk56;
2266
2267 /* '<S346>:188:1' */
2268 L4_MABX_Calculate_abc();
2269
2270 /* '<S346>:188:1' */
2271 L4_MABX_DW.Acceleration34 = -L4_MABX_DW.c / L4_MABX_DW.b;
2272
2273 /* '<S346>:188:2' */
2274 L4_MABX_DW.AlternateMethod = false;
2275 } else {
2276 /* '<S346>:224:1' */
2277 if (L4_MABX_DW.b * L4_MABX_DW.b <= 4.0 * L4_MABX_DW.a * L4_MABX_DW.c) {
2278 /* '<S346>:292:1' */
2279 L4_MABX_CalculateAlternate_abc();
2280
2281 /* '<S346>:292:1' */
2282 L4_MABX_DW.Acceleration34 = -L4_MABX_DW.b / (2.0 * L4_MABX_DW.a);
2283
2284 /* '<S346>:292:2' */
2285 L4_MABX_DW.AlternateMethod = true;
2286 } else {
2287 /* '<S346>:294:1' */
2288 L4_MABX_DW.Acceleration34 = (sqrt(L4_MABX_DW.b * L4_MABX_DW.b - 4.0 *
2289 L4_MABX_DW.a * L4_MABX_DW.c) + -L4_MABX_DW.b) / (2.0 * L4_MABX_DW.a);
2290
2291 /* '<S346>:294:2' */
2292 L4_MABX_DW.AlternateMethod = false;
2293 }
2294 }
2295}
2296
2297static int32_T safe_cast_to_ENUM_CAN_STATUS_DI(int32_T input)
2298{
2299 int32_T y;
2300
2301 /* Initialize output value to default value for ENUM_CAN_STATUS_DIAG_T (ACTIVE) */
2302 y = 0;
2303 if ((input >= 0) && (input <= 2)) {
2304 /* Set output value to input value if it is a member of ENUM_CAN_STATUS_DIAG_T */
2305 y = input;
2306 }
2307
2308 return y;
2309}
2310
2311/* Model output function for TID0 */
2312void L4_MABX_output0(void) /* Sample time: [0.01s, 0.0s] */
2313{
2314 int_T tid = 0;
2315 uint8_T starting_index;
2316 real_T AccelerationAverage;
2317 real_T DeltaTimeFinal;
2318 uint8_T j;
2319 real_T PositionFinalLimited;
2320 real_T Time56;
2321 real_T DeltaTime;
2322 uint32_T tmp;
2323 boolean_T zcEvent;
2324 int32_T i;
2325 uint32_T q0;
2326 uint16_T tmp_0;
2327 int8_T tmp_1;
2328
2329 /* Update the flag to indicate when data transfers from
2330 * Sample time: [0.01s, 0.0s] to Sample time: [0.02s, 0.0s] */
2331 L4_MABX_M->Timing.perTaskSampleHits[1] =
2332 (L4_MABX_M->Timing.RateInteraction.TID0_1 == 0);
2333 (L4_MABX_M->Timing.RateInteraction.TID0_1)++;
2334 if ((L4_MABX_M->Timing.RateInteraction.TID0_1) > 1) {
2335 L4_MABX_M->Timing.RateInteraction.TID0_1 = 0;
2336 }
2337
2338 /* Update the flag to indicate when data transfers from
2339 * Sample time: [0.01s, 0.0s] to Sample time: [0.05s, 0.0s] */
2340 L4_MABX_M->Timing.perTaskSampleHits[2] =
2341 (L4_MABX_M->Timing.RateInteraction.TID0_2 == 0);
2342 (L4_MABX_M->Timing.RateInteraction.TID0_2)++;
2343 if ((L4_MABX_M->Timing.RateInteraction.TID0_2) > 4) {
2344 L4_MABX_M->Timing.RateInteraction.TID0_2 = 0;
2345 }
2346
2347 /* Update the flag to indicate when data transfers from
2348 * Sample time: [0.01s, 0.0s] to Sample time: [0.1s, 0.0s] */
2349 L4_MABX_M->Timing.perTaskSampleHits[3] =
2350 (L4_MABX_M->Timing.RateInteraction.TID0_3 == 0);
2351 (L4_MABX_M->Timing.RateInteraction.TID0_3)++;
2352 if ((L4_MABX_M->Timing.RateInteraction.TID0_3) > 9) {
2353 L4_MABX_M->Timing.RateInteraction.TID0_3 = 0;
2354 }
2355
2356 /* Update the flag to indicate when data transfers from
2357 * Sample time: [0.01s, 0.0s] to Sample time: [1.0s, 0.0s] */
2358 L4_MABX_M->Timing.perTaskSampleHits[6] =
2359 (L4_MABX_M->Timing.RateInteraction.TID0_6 == 0);
2360 (L4_MABX_M->Timing.RateInteraction.TID0_6)++;
2361 if ((L4_MABX_M->Timing.RateInteraction.TID0_6) > 99) {
2362 L4_MABX_M->Timing.RateInteraction.TID0_6 = 0;
2363 }
2364
2365 /* Update the flag to indicate when data transfers from
2366 * Sample time: [0.01s, 0.0s] to Sample time: [5.0s, 0.0s] */
2367 L4_MABX_M->Timing.perTaskSampleHits[7] =
2368 (L4_MABX_M->Timing.RateInteraction.TID0_7 == 0);
2369 (L4_MABX_M->Timing.RateInteraction.TID0_7)++;
2370 if ((L4_MABX_M->Timing.RateInteraction.TID0_7) > 499) {
2371 L4_MABX_M->Timing.RateInteraction.TID0_7 = 0;
2372 }
2373
2374 /* Outputs for Enabled SubSystem: '<S483>/AIR1' incorporates:
2375 * EnablePort: '<S484>/Enable'
2376 */
2377 /* Constant: '<S411>/Constant' */
2378 if (L4_MABX_P.Constant_Value_ek2) {
2379 /* S-Function (rti_commonblock): '<S484>/S-Function1' */
2380 /* This comment workarounds a code generation problem */
2381
2382 /* dSPACE RTICAN RX Message Block: "AIR1" Id:419343921 */
2383 {
2384 UInt32 *CAN_Msg;
2385 static dsfloat time_old = 0.0;
2386
2387 /* Read status and timestamp info (previous message) */
2388 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEAE31].timestamp !=
2389 time_old) {
2390 /* ... save timestamp info for the calculation of the RX status
2391 during the consecutive sample hit*/
2392 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEAE31].
2393 timestamp;
2394
2395 /* ... set the processed flag to one */
2396 L4_MABX_B.SFunction1_o9_ni = 1.0;
2397 L4_MABX_B.SFunction1_o10_ll = (real_T)
2398 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEAE31].timestamp;
2399 L4_MABX_B.SFunction1_o11_o = (real_T)
2400 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEAE31].deltatime;
2401 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEAE31].data;
2402
2403 /* Decode CAN message */
2404 {
2405 {
2406 rtican_Signal_t CAN_Sgn;
2407
2408 /* ...... "PneumaticSupplyPress" (0|8, standard signal, unsigned int, little endian) */
2409 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
2410 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2411 L4_MABX_B.SFunction1_o1_of = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2412
2413 /* ...... "ParkingAnd_orTrailerAirPress" (8|8, standard signal, unsigned int, little endian) */
2414 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
2415 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2416 L4_MABX_B.SFunction1_o2_j3 = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2417
2418 /* ...... "ServiceBrakeCircuit1AirPress" (16|8, standard signal, unsigned int, little endian) */
2419 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
2420 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2421 L4_MABX_B.SFunction1_o3_ll = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2422
2423 /* ...... "ServiceBrakeCircuit2AirPress" (24|8, standard signal, unsigned int, little endian) */
2424 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
2425 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2426 L4_MABX_B.SFunction1_o4_ig = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2427
2428 /* ...... "AuxEquipmentSupplyPress" (32|8, standard signal, unsigned int, little endian) */
2429 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
2430 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2431 L4_MABX_B.SFunction1_o5_el = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2432
2433 /* ...... "AirSuspensionSupplyPress" (40|8, standard signal, unsigned int, little endian) */
2434 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
2435 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2436 L4_MABX_B.SFunction1_o6_mn = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2437
2438 /* ...... "AirCompressorStatus" (48|2, standard signal, unsigned int, little endian) */
2439 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
2440 CAN_Sgn.UnsignedSgn &= 0x00000003;
2441 L4_MABX_B.SFunction1_o7_lz = ((real_T) CAN_Sgn.UnsignedSgn);
2442
2443 /* ...... "PowertrainCircuitAirSupplyPress" (56|8, standard signal, unsigned int, little endian) */
2444 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
2445 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2446 L4_MABX_B.SFunction1_o8_p5 = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2447 }
2448 }
2449 } else {
2450 /* set RX status to 0 because no new message has arrived */
2451 L4_MABX_B.SFunction1_o9_ni = 0.0;
2452 }
2453 }
2454 }
2455
2456 /* End of Constant: '<S411>/Constant' */
2457 /* End of Outputs for SubSystem: '<S483>/AIR1' */
2458
2459 /* Outputs for Enabled SubSystem: '<S485>/AMB' incorporates:
2460 * EnablePort: '<S486>/Enable'
2461 */
2462 /* Constant: '<S412>/Constant' */
2463 if (L4_MABX_P.Constant_Value_pc) {
2464 /* S-Function (rti_commonblock): '<S486>/S-Function1' */
2465 /* This comment workarounds a code generation problem */
2466
2467 /* dSPACE RTICAN RX Message Block: "AMB" Id:419362048 */
2468 {
2469 UInt32 *CAN_Msg;
2470 static dsfloat time_old = 0.0;
2471
2472 /* Read status and timestamp info (previous message) */
2473 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF500].timestamp !=
2474 time_old) {
2475 /* ... save timestamp info for the calculation of the RX status
2476 during the consecutive sample hit*/
2477 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF500].
2478 timestamp;
2479
2480 /* ... set the processed flag to one */
2481 L4_MABX_B.SFunction1_o6_nu = 1.0;
2482 L4_MABX_B.SFunction1_o7_lg = (real_T)
2483 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF500].timestamp;
2484 L4_MABX_B.SFunction1_o8_fw = (real_T)
2485 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF500].deltatime;
2486 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF500].data;
2487
2488 /* Decode CAN message */
2489 {
2490 {
2491 rtican_Signal_t CAN_Sgn;
2492
2493 /* ...... "BarometricPress" (0|8, standard signal, unsigned int, little endian) */
2494 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
2495 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2496 L4_MABX_B.SFunction1_o1_afv = 0.5 * ( ((real_T) CAN_Sgn.UnsignedSgn)
2497 );
2498
2499 /* ...... "CabInteriorTemp" (8|16, standard signal, unsigned int, little endian) */
2500 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
2501 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
2502 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
2503 L4_MABX_B.SFunction1_o2_dd = -273 + ( 0.03125 * ( ((real_T)
2504 CAN_Sgn.UnsignedSgn) ) );
2505
2506 /* ...... "AmbientAirTemp" (24|16, standard signal, unsigned int, little endian) */
2507 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
2508 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
2509 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
2510 L4_MABX_B.SFunction1_o3_ng = -273 + ( 0.03125 * ( ((real_T)
2511 CAN_Sgn.UnsignedSgn) ) );
2512
2513 /* ...... "EngAirIntakeTemp" (40|8, standard signal, unsigned int, little endian) */
2514 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
2515 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2516 L4_MABX_B.SFunction1_o4_dd = -40 + ( ((real_T) CAN_Sgn.UnsignedSgn) );
2517
2518 /* ...... "RoadSurfaceTemp" (48|16, standard signal, unsigned int, little endian) */
2519 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
2520 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[7];
2521 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
2522 L4_MABX_B.SFunction1_o5_c5 = -273 + ( 0.03125 * ( ((real_T)
2523 CAN_Sgn.UnsignedSgn) ) );
2524 }
2525 }
2526 } else {
2527 /* set RX status to 0 because no new message has arrived */
2528 L4_MABX_B.SFunction1_o6_nu = 0.0;
2529 }
2530 }
2531 }
2532
2533 /* End of Constant: '<S412>/Constant' */
2534 /* End of Outputs for SubSystem: '<S485>/AMB' */
2535
2536 /* Outputs for Atomic SubSystem: '<S804>/CAN_TX_1000ms' */
2537
2538 /* RateTransition: '<S824>/TmpRTBAtAIR1Inport1' */
2539 if (L4_MABX_M->Timing.RateInteraction.TID0_6 == 1) {
2540 L4_MABX_B.PneumaticSupplyPress = L4_MABX_B.SFunction1_o1_of;
2541 L4_MABX_B.ParkingAnd_orTrailerAirPress = L4_MABX_B.SFunction1_o2_j3;
2542 L4_MABX_B.ServiceBrakeCircuit1AirPress = L4_MABX_B.SFunction1_o3_ll;
2543 L4_MABX_B.ServiceBrakeCircuit2AirPress = L4_MABX_B.SFunction1_o4_ig;
2544 L4_MABX_B.AuxEquipmentSupplyPress = L4_MABX_B.SFunction1_o5_el;
2545 L4_MABX_B.AirSuspensionSupplyPress = L4_MABX_B.SFunction1_o6_mn;
2546 L4_MABX_B.AirCompressorStatus = L4_MABX_B.SFunction1_o7_lz;
2547 L4_MABX_B.PowertrainCircuitAirSupplyPress = L4_MABX_B.SFunction1_o8_p5;
2548 L4_MABX_B.BarometricPress_c = L4_MABX_B.SFunction1_o1_afv;
2549 L4_MABX_B.CabInteriorTemp = L4_MABX_B.SFunction1_o2_dd;
2550 L4_MABX_B.AmbientAirTemp_k = L4_MABX_B.SFunction1_o3_ng;
2551 L4_MABX_B.EngAirIntakeTemp = L4_MABX_B.SFunction1_o4_dd;
2552 L4_MABX_B.RoadSurfaceTemp = L4_MABX_B.SFunction1_o5_c5;
2553 }
2554
2555 /* End of Outputs for SubSystem: '<S804>/CAN_TX_1000ms' */
2556
2557 /* S-Function (rti_commonblock): '<S709>/S-Function1' */
2558 /* This comment workarounds a code generation problem */
2559
2560 /* DataTypeConversion: '<S402>/EStopSwActive' */
2561 L4_MABX_B.EStopSwActive = L4_MABX_B.SFunction1_d;
2562
2563 /* Logic: '<S402>/Logical Operator1' */
2564 EStop = !L4_MABX_B.EStopSwActive;
2565
2566 /* S-Function (rti_commonblock): '<S708>/S-Function1' */
2567 /* This comment workarounds a code generation problem */
2568
2569 /* S-Function (sfix_bitop): '<S798>/Operator' */
2570 L4_MABX_B.Operator_lh = (L4_MABX_B.SFunction1_o &&
2571 (L4_MABX_P.Operator_BitMask_p1 != 0));
2572
2573 /* DataTypeConversion: '<S798>/DataType' */
2574 L4_MABX_B.DataType_kd = L4_MABX_B.Operator_lh;
2575
2576 /* Logic: '<S716>/Logical Operator' */
2577 L4_MABX_B.LogicalOperator = !L4_MABX_B.DataType_kd;
2578
2579 /* S-Function (rti_commonblock): '<S711>/S-Function1' */
2580 /* This comment workarounds a code generation problem */
2581
2582 /* S-Function (sfix_bitop): '<S799>/Operator' */
2583 L4_MABX_B.Operator_hon = (L4_MABX_B.SFunction1_on &&
2584 (L4_MABX_P.Operator_BitMask_ed != 0));
2585
2586 /* DataTypeConversion: '<S799>/DataType' */
2587 L4_MABX_B.DataType_bv = L4_MABX_B.Operator_hon;
2588
2589 /* Logic: '<S716>/AND2' */
2590 L4_MABX_B.AND2 = (L4_MABX_B.LogicalOperator && L4_MABX_B.DataType_bv);
2591
2592 /* Chart: '<S800>/Chart' */
2593 /* Gateway: DIGITAL/Signal Check/RationalityCheck/Chart */
2594 /* During: DIGITAL/Signal Check/RationalityCheck/Chart */
2595 if (L4_MABX_DW.is_active_c5_SUB_ECU_L4_MABX_HW == 0U) {
2596 /* Entry: DIGITAL/Signal Check/RationalityCheck/Chart */
2597 L4_MABX_DW.is_active_c5_SUB_ECU_L4_MABX_HW = 1U;
2598
2599 /* Entry Internal: DIGITAL/Signal Check/RationalityCheck/Chart */
2600 /* Transition: '<S801>:6' */
2601 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_init_k;
2602
2603 /* Entry 'init': '<S801>:1' */
2604 L4_MABX_B.DiagPassed = false;
2605 } else {
2606 switch (L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf) {
2607 case L4_MABX_IN_DiagPassed:
2608 /* During 'DiagPassed': '<S801>:4' */
2609 break;
2610
2611 case L4_MABX_IN_SwitchOff:
2612 /* During 'SwitchOff': '<S801>:2' */
2613 if (L4_MABX_B.AND2) {
2614 /* Transition: '<S801>:8' */
2615 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_DiagPassed;
2616
2617 /* Entry 'DiagPassed': '<S801>:4' */
2618 L4_MABX_B.DiagPassed = true;
2619 }
2620 break;
2621
2622 case L4_MABX_IN_SwitchOn:
2623 /* During 'SwitchOn': '<S801>:3' */
2624 if (!L4_MABX_B.AND2) {
2625 /* Transition: '<S801>:9' */
2626 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SwitchOff;
2627 }
2628 break;
2629
2630 default:
2631 /* During 'init': '<S801>:1' */
2632 if (!L4_MABX_B.AND2) {
2633 /* Transition: '<S801>:5' */
2634 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SwitchOff;
2635 } else {
2636 /* Transition: '<S801>:7' */
2637 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SwitchOn;
2638 }
2639 break;
2640 }
2641 }
2642
2643 /* End of Chart: '<S800>/Chart' */
2644
2645 /* Switch: '<S716>/Switch' incorporates:
2646 * Constant: '<S716>/OverrideOperatorEnableSW_Default'
2647 */
2648 if (L4_MABX_B.DiagPassed) {
2649 EnableSw = L4_MABX_B.AND2;
2650 } else {
2651 EnableSw = L4_MABX_P.OverrideOperatorEnableSW_Defaul;
2652 }
2653
2654 /* End of Switch: '<S716>/Switch' */
2655
2656 /* S-Function (rti_commonblock): '<S713>/S-Function1' */
2657 /* This comment workarounds a code generation problem */
2658
2659 /* DataTypeConversion: '<S402>/Data Type Conversion2' */
2660 L4_MABX_B.Pedal_1_pwm_freq_raw_value = L4_MABX_B.SFunction1_o1;
2661
2662 /* RelationalOperator: '<S746>/min_relop' incorporates:
2663 * Constant: '<S718>/PWMAFreqRngMin'
2664 */
2665 L4_MABX_B.min_relop = (L4_MABX_P.PWMAFreqRngMin_Value <
2666 L4_MABX_B.Pedal_1_pwm_freq_raw_value);
2667
2668 /* RelationalOperator: '<S746>/max_relop' incorporates:
2669 * Constant: '<S718>/PWMAFreqRngMax'
2670 */
2671 L4_MABX_B.max_relop = (L4_MABX_B.Pedal_1_pwm_freq_raw_value <
2672 L4_MABX_P.PWMAFreqRngMax_Value);
2673
2674 /* Logic: '<S746>/conjunction' */
2675 L4_MABX_B.conjunction = (L4_MABX_B.min_relop && L4_MABX_B.max_relop);
2676
2677 /* UnitDelay: '<S751>/FixPt Unit Delay2' */
2678 L4_MABX_B.FixPtUnitDelay2 = L4_MABX_DW.FixPtUnitDelay2_DSTATE;
2679
2680 /* UnitDelay: '<S751>/FixPt Unit Delay1' */
2681 L4_MABX_B.Xold = L4_MABX_DW.FixPtUnitDelay1_DSTATE;
2682
2683 /* Switch: '<S751>/Init' incorporates:
2684 * Constant: '<S718>/PWMAFreqRngFaultLimMin'
2685 */
2686 if (L4_MABX_B.FixPtUnitDelay2 != 0) {
2687 L4_MABX_B.Init = L4_MABX_P.PWMAFreqRngFaultLimMin_Value;
2688 } else {
2689 L4_MABX_B.Init = L4_MABX_B.Xold;
2690 }
2691
2692 /* End of Switch: '<S751>/Init' */
2693
2694 /* Sum: '<S747>/FixPt Sum1' incorporates:
2695 * Constant: '<S747>/FixPt Constant'
2696 */
2697 L4_MABX_B.FixPtSum1 = L4_MABX_B.Init - L4_MABX_P.FixPtConstant_Value_b;
2698
2699 /* Sum: '<S750>/FixPt Sum1' incorporates:
2700 * Constant: '<S750>/FixPt Constant'
2701 */
2702 L4_MABX_B.FixPtSum1_d = L4_MABX_B.Init + L4_MABX_P.FixPtConstant_Value_e;
2703
2704 /* Outputs for Atomic SubSystem: '<S734>/If_Then_Else3' */
2705 L4_MABX_If_Then_Else(L4_MABX_B.conjunction, L4_MABX_B.FixPtSum1,
2706 L4_MABX_B.FixPtSum1_d, &L4_MABX_B.If_Then_Else3_a);
2707
2708 /* End of Outputs for SubSystem: '<S734>/If_Then_Else3' */
2709
2710 /* RelationalOperator: '<S748>/Relational Operator1' incorporates:
2711 * Constant: '<S718>/PWMAFreqRngFaultLimMax'
2712 */
2713 L4_MABX_B.RelationalOperator1 = (L4_MABX_B.If_Then_Else3_a.Switch >=
2714 L4_MABX_P.PWMAFreqRngFaultLimMax_Value);
2715
2716 /* RelationalOperator: '<S748>/Relational Operator' incorporates:
2717 * Constant: '<S718>/PWMAFreqRngFaultLimMin'
2718 */
2719 L4_MABX_B.RelationalOperator = (L4_MABX_B.If_Then_Else3_a.Switch <=
2720 L4_MABX_P.PWMAFreqRngFaultLimMin_Value);
2721
2722 /* Outputs for Atomic SubSystem: '<S748>/If_Then_Else1' */
2723
2724 /* Constant: '<S718>/PWMAFreqRngFaultLimMin' */
2725 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator,
2726 L4_MABX_P.PWMAFreqRngFaultLimMin_Value,
2727 L4_MABX_B.If_Then_Else3_a.Switch,
2728 &L4_MABX_B.If_Then_Else1_g);
2729
2730 /* End of Outputs for SubSystem: '<S748>/If_Then_Else1' */
2731
2732 /* Outputs for Atomic SubSystem: '<S748>/If_Then_Else' */
2733
2734 /* Constant: '<S718>/PWMAFreqRngFaultLimMax' */
2735 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1,
2736 L4_MABX_P.PWMAFreqRngFaultLimMax_Value,
2737 L4_MABX_B.If_Then_Else1_g.Switch,
2738 &L4_MABX_B.If_Then_Else_c);
2739
2740 /* End of Outputs for SubSystem: '<S748>/If_Then_Else' */
2741
2742 /* RelationalOperator: '<S734>/Relational Operator9' incorporates:
2743 * Constant: '<S718>/PWMAFreqRngFaultLimMin'
2744 */
2745 L4_MABX_B.F_Fault_Soft = (L4_MABX_B.If_Then_Else_c.Switch !=
2746 L4_MABX_P.PWMAFreqRngFaultLimMin_Value);
2747
2748 /* Gain: '<S402>/Gain' */
2749 L4_MABX_B.Gain = L4_MABX_P.Gain_Gain_l * L4_MABX_B.SFunction1_o2;
2750
2751 /* DataTypeConversion: '<S402>/Data Type Conversion9' */
2752 L4_MABX_B.Pedal_1_pwm_dc_raw_value = L4_MABX_B.Gain;
2753
2754 /* RelationalOperator: '<S738>/min_relop' incorporates:
2755 * Constant: '<S718>/PWMADCRngMin'
2756 */
2757 L4_MABX_B.min_relop_p = (L4_MABX_P.PWMADCRngMin_Value <
2758 L4_MABX_B.Pedal_1_pwm_dc_raw_value);
2759
2760 /* RelationalOperator: '<S738>/max_relop' incorporates:
2761 * Constant: '<S718>/PWMADCRngMax'
2762 */
2763 L4_MABX_B.max_relop_n = (L4_MABX_B.Pedal_1_pwm_dc_raw_value <
2764 L4_MABX_P.PWMADCRngMax_Value);
2765
2766 /* Logic: '<S738>/conjunction' */
2767 L4_MABX_B.conjunction_m = (L4_MABX_B.min_relop_p && L4_MABX_B.max_relop_n);
2768
2769 /* UnitDelay: '<S743>/FixPt Unit Delay2' */
2770 L4_MABX_B.FixPtUnitDelay2_b = L4_MABX_DW.FixPtUnitDelay2_DSTATE_h;
2771
2772 /* UnitDelay: '<S743>/FixPt Unit Delay1' */
2773 L4_MABX_B.Xold_g = L4_MABX_DW.FixPtUnitDelay1_DSTATE_p;
2774
2775 /* Switch: '<S743>/Init' incorporates:
2776 * Constant: '<S718>/PWMADCRngFaultLimMin'
2777 */
2778 if (L4_MABX_B.FixPtUnitDelay2_b != 0) {
2779 L4_MABX_B.Init_d = L4_MABX_P.PWMADCRngFaultLimMin_Value;
2780 } else {
2781 L4_MABX_B.Init_d = L4_MABX_B.Xold_g;
2782 }
2783
2784 /* End of Switch: '<S743>/Init' */
2785
2786 /* Sum: '<S739>/FixPt Sum1' incorporates:
2787 * Constant: '<S739>/FixPt Constant'
2788 */
2789 L4_MABX_B.FixPtSum1_n = L4_MABX_B.Init_d - L4_MABX_P.FixPtConstant_Value_n;
2790
2791 /* Sum: '<S742>/FixPt Sum1' incorporates:
2792 * Constant: '<S742>/FixPt Constant'
2793 */
2794 L4_MABX_B.FixPtSum1_m = L4_MABX_B.Init_d + L4_MABX_P.FixPtConstant_Value_e3;
2795
2796 /* Outputs for Atomic SubSystem: '<S733>/If_Then_Else3' */
2797 L4_MABX_If_Then_Else(L4_MABX_B.conjunction_m, L4_MABX_B.FixPtSum1_n,
2798 L4_MABX_B.FixPtSum1_m, &L4_MABX_B.If_Then_Else3);
2799
2800 /* End of Outputs for SubSystem: '<S733>/If_Then_Else3' */
2801
2802 /* RelationalOperator: '<S740>/Relational Operator1' incorporates:
2803 * Constant: '<S718>/PWMADCRngFaultLimMax'
2804 */
2805 L4_MABX_B.RelationalOperator1_n = (L4_MABX_B.If_Then_Else3.Switch >=
2806 L4_MABX_P.PWMADCRngFaultLimMax_Value);
2807
2808 /* RelationalOperator: '<S740>/Relational Operator' incorporates:
2809 * Constant: '<S718>/PWMADCRngFaultLimMin'
2810 */
2811 L4_MABX_B.RelationalOperator_m = (L4_MABX_B.If_Then_Else3.Switch <=
2812 L4_MABX_P.PWMADCRngFaultLimMin_Value);
2813
2814 /* Outputs for Atomic SubSystem: '<S740>/If_Then_Else1' */
2815
2816 /* Constant: '<S718>/PWMADCRngFaultLimMin' */
2817 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_m,
2818 L4_MABX_P.PWMADCRngFaultLimMin_Value,
2819 L4_MABX_B.If_Then_Else3.Switch,
2820 &L4_MABX_B.If_Then_Else1_i);
2821
2822 /* End of Outputs for SubSystem: '<S740>/If_Then_Else1' */
2823
2824 /* Outputs for Atomic SubSystem: '<S740>/If_Then_Else' */
2825
2826 /* Constant: '<S718>/PWMADCRngFaultLimMax' */
2827 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_n,
2828 L4_MABX_P.PWMADCRngFaultLimMax_Value,
2829 L4_MABX_B.If_Then_Else1_i.Switch,
2830 &L4_MABX_B.If_Then_Else_p);
2831
2832 /* End of Outputs for SubSystem: '<S740>/If_Then_Else' */
2833
2834 /* RelationalOperator: '<S733>/Relational Operator9' incorporates:
2835 * Constant: '<S718>/PWMADCRngFaultLimMin'
2836 */
2837 L4_MABX_B.F_Fault_Soft_o = (L4_MABX_B.If_Then_Else_p.Switch !=
2838 L4_MABX_P.PWMADCRngFaultLimMin_Value);
2839
2840 /* Logic: '<S718>/Logical Operator2' */
2841 L4_MABX_B.LogicalOperator2 = (L4_MABX_B.F_Fault_Soft ||
2842 L4_MABX_B.F_Fault_Soft_o);
2843
2844 /* RelationalOperator: '<S734>/Relational Operator8' incorporates:
2845 * Constant: '<S718>/PWMAFreqRngFaultLimMax'
2846 */
2847 L4_MABX_B.F_Fault_Hard = (L4_MABX_P.PWMAFreqRngFaultLimMax_Value <=
2848 L4_MABX_B.If_Then_Else_c.Switch);
2849
2850 /* RelationalOperator: '<S733>/Relational Operator8' incorporates:
2851 * Constant: '<S718>/PWMADCRngFaultLimMax'
2852 */
2853 L4_MABX_B.F_Fault_Hard_o = (L4_MABX_P.PWMADCRngFaultLimMax_Value <=
2854 L4_MABX_B.If_Then_Else_p.Switch);
2855
2856 /* Logic: '<S718>/Logical Operator1' */
2857 L4_MABX_B.LogicalOperator1 = (L4_MABX_B.F_Fault_Hard ||
2858 L4_MABX_B.F_Fault_Hard_o);
2859
2860 /* Chart: '<S718>/Health State Machine PWM Sensor 1' */
2861 /* Gateway: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 1 */
2862 /* During: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 1 */
2863 if (L4_MABX_DW.is_active_c9_SUB_ECU_L4_MABX_HW == 0U) {
2864 /* Entry: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 1 */
2865 L4_MABX_DW.is_active_c9_SUB_ECU_L4_MABX_HW = 1U;
2866
2867 /* Entry Internal: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 1 */
2868 /* Transition: '<S731>:2' */
2869 L4_MABX_DW.is_c9_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_NO_FAILURE;
2870
2871 /* Entry 'NO_FAILURE': '<S731>:1' */
2872 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
2873 } else if (L4_MABX_DW.is_c9_SUB_ECU_L4_MABX_HW_Interf ==
2874 L4_MABX_IN_FAILURE_DETECTED) {
2875 /* During 'FAILURE_DETECTED': '<S731>:6' */
2876 if (L4_MABX_DW.is_FAILURE_DETECTED_m == L4_MABX_IN_ERROR) {
2877 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_ACTIVE;
2878
2879 /* During 'ERROR': '<S731>:8' */
2880 if (!L4_MABX_B.LogicalOperator1) {
2881 /* Transition: '<S731>:17' */
2882 L4_MABX_DW.is_FAILURE_DETECTED_m = L4_MABX_IN_PENDING;
2883
2884 /* Entry 'PENDING': '<S731>:7' */
2885 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
2886 }
2887 } else {
2888 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
2889
2890 /* During 'PENDING': '<S731>:7' */
2891 zcEvent = ((!L4_MABX_B.LogicalOperator2) && (!L4_MABX_B.LogicalOperator1));
2892 if (zcEvent) {
2893 /* Transition: '<S731>:9' */
2894 L4_MABX_DW.is_FAILURE_DETECTED_m = L4_MABX_IN_NO_ACTIVE_CHILD;
2895 L4_MABX_DW.is_c9_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_NO_FAILURE;
2896
2897 /* Entry 'NO_FAILURE': '<S731>:1' */
2898 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
2899 } else {
2900 if (L4_MABX_B.LogicalOperator1) {
2901 /* Transition: '<S731>:12' */
2902 L4_MABX_DW.is_FAILURE_DETECTED_m = L4_MABX_IN_ERROR;
2903
2904 /* Entry 'ERROR': '<S731>:8' */
2905 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_ACTIVE;
2906 }
2907 }
2908 }
2909 } else {
2910 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
2911
2912 /* During 'NO_FAILURE': '<S731>:1' */
2913 zcEvent = (L4_MABX_B.LogicalOperator2 || L4_MABX_B.LogicalOperator1);
2914 if (zcEvent) {
2915 /* Transition: '<S731>:10' */
2916 L4_MABX_DW.is_c9_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_FAILURE_DETECTED;
2917
2918 /* Entry 'FAILURE_DETECTED': '<S731>:6' */
2919 /* Entry Internal 'FAILURE_DETECTED': '<S731>:6' */
2920 /* Transition: '<S731>:11' */
2921 L4_MABX_DW.is_FAILURE_DETECTED_m = L4_MABX_IN_PENDING;
2922
2923 /* Entry 'PENDING': '<S731>:7' */
2924 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
2925 }
2926 }
2927
2928 /* End of Chart: '<S718>/Health State Machine PWM Sensor 1' */
2929
2930 /* RelationalOperator: '<S729>/Compare' incorporates:
2931 * Constant: '<S729>/Constant'
2932 */
2933 L4_MABX_B.Compare = (L4_MABX_B.Pedal_1_pwm_health_state ==
2934 L4_MABX_P.CompareToConstant_const_o);
2935
2936 /* S-Function (rti_commonblock): '<S714>/S-Function1' */
2937 /* This comment workarounds a code generation problem */
2938
2939 /* DataTypeConversion: '<S402>/Data Type Conversion3' */
2940 L4_MABX_B.Pedal_2_pwm_freq_raw_value = L4_MABX_B.SFunction1_o1_e;
2941
2942 /* RelationalOperator: '<S762>/min_relop' incorporates:
2943 * Constant: '<S718>/PWMBFreqRngMin1'
2944 */
2945 L4_MABX_B.min_relop_k = (L4_MABX_P.PWMBFreqRngMin1_Value <
2946 L4_MABX_B.Pedal_2_pwm_freq_raw_value);
2947
2948 /* RelationalOperator: '<S762>/max_relop' incorporates:
2949 * Constant: '<S718>/PWMBFreqRngMax1'
2950 */
2951 L4_MABX_B.max_relop_c = (L4_MABX_B.Pedal_2_pwm_freq_raw_value <
2952 L4_MABX_P.PWMBFreqRngMax1_Value);
2953
2954 /* Logic: '<S762>/conjunction' */
2955 L4_MABX_B.conjunction_h = (L4_MABX_B.min_relop_k && L4_MABX_B.max_relop_c);
2956
2957 /* UnitDelay: '<S767>/FixPt Unit Delay2' */
2958 L4_MABX_B.FixPtUnitDelay2_m = L4_MABX_DW.FixPtUnitDelay2_DSTATE_g;
2959
2960 /* UnitDelay: '<S767>/FixPt Unit Delay1' */
2961 L4_MABX_B.Xold_f = L4_MABX_DW.FixPtUnitDelay1_DSTATE_n;
2962
2963 /* Switch: '<S767>/Init' incorporates:
2964 * Constant: '<S718>/PWMBFreqRngFaultLimMin1'
2965 */
2966 if (L4_MABX_B.FixPtUnitDelay2_m != 0) {
2967 L4_MABX_B.Init_c = L4_MABX_P.PWMBFreqRngFaultLimMin1_Value;
2968 } else {
2969 L4_MABX_B.Init_c = L4_MABX_B.Xold_f;
2970 }
2971
2972 /* End of Switch: '<S767>/Init' */
2973
2974 /* Sum: '<S763>/FixPt Sum1' incorporates:
2975 * Constant: '<S763>/FixPt Constant'
2976 */
2977 L4_MABX_B.FixPtSum1_h = L4_MABX_B.Init_c - L4_MABX_P.FixPtConstant_Value_j;
2978
2979 /* Sum: '<S766>/FixPt Sum1' incorporates:
2980 * Constant: '<S766>/FixPt Constant'
2981 */
2982 L4_MABX_B.FixPtSum1_h1 = L4_MABX_B.Init_c + L4_MABX_P.FixPtConstant_Value_i;
2983
2984 /* Outputs for Atomic SubSystem: '<S736>/If_Then_Else3' */
2985 L4_MABX_If_Then_Else(L4_MABX_B.conjunction_h, L4_MABX_B.FixPtSum1_h,
2986 L4_MABX_B.FixPtSum1_h1, &L4_MABX_B.If_Then_Else3_c);
2987
2988 /* End of Outputs for SubSystem: '<S736>/If_Then_Else3' */
2989
2990 /* RelationalOperator: '<S764>/Relational Operator1' incorporates:
2991 * Constant: '<S718>/PWMBFreqRngFaultLimMax1'
2992 */
2993 L4_MABX_B.RelationalOperator1_h = (L4_MABX_B.If_Then_Else3_c.Switch >=
2994 L4_MABX_P.PWMBFreqRngFaultLimMax1_Value);
2995
2996 /* RelationalOperator: '<S764>/Relational Operator' incorporates:
2997 * Constant: '<S718>/PWMBFreqRngFaultLimMin1'
2998 */
2999 L4_MABX_B.RelationalOperator_b = (L4_MABX_B.If_Then_Else3_c.Switch <=
3000 L4_MABX_P.PWMBFreqRngFaultLimMin1_Value);
3001
3002 /* Outputs for Atomic SubSystem: '<S764>/If_Then_Else1' */
3003
3004 /* Constant: '<S718>/PWMBFreqRngFaultLimMin1' */
3005 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_b,
3006 L4_MABX_P.PWMBFreqRngFaultLimMin1_Value,
3007 L4_MABX_B.If_Then_Else3_c.Switch,
3008 &L4_MABX_B.If_Then_Else1_o);
3009
3010 /* End of Outputs for SubSystem: '<S764>/If_Then_Else1' */
3011
3012 /* Outputs for Atomic SubSystem: '<S764>/If_Then_Else' */
3013
3014 /* Constant: '<S718>/PWMBFreqRngFaultLimMax1' */
3015 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_h,
3016 L4_MABX_P.PWMBFreqRngFaultLimMax1_Value,
3017 L4_MABX_B.If_Then_Else1_o.Switch,
3018 &L4_MABX_B.If_Then_Else_n);
3019
3020 /* End of Outputs for SubSystem: '<S764>/If_Then_Else' */
3021
3022 /* RelationalOperator: '<S736>/Relational Operator9' incorporates:
3023 * Constant: '<S718>/PWMBFreqRngFaultLimMin1'
3024 */
3025 L4_MABX_B.F_Fault_Soft_e = (L4_MABX_B.If_Then_Else_n.Switch !=
3026 L4_MABX_P.PWMBFreqRngFaultLimMin1_Value);
3027
3028 /* Gain: '<S402>/Gain1' */
3029 L4_MABX_B.Gain1 = L4_MABX_P.Gain1_Gain_d * L4_MABX_B.SFunction1_o2_c;
3030
3031 /* DataTypeConversion: '<S402>/Data Type Conversion1' */
3032 L4_MABX_B.Pedal_2_pwm_dc_raw_value = L4_MABX_B.Gain1;
3033
3034 /* RelationalOperator: '<S754>/min_relop' incorporates:
3035 * Constant: '<S718>/PWMBDCRngMin1'
3036 */
3037 L4_MABX_B.min_relop_j = (L4_MABX_P.PWMBDCRngMin1_Value <
3038 L4_MABX_B.Pedal_2_pwm_dc_raw_value);
3039
3040 /* RelationalOperator: '<S754>/max_relop' incorporates:
3041 * Constant: '<S718>/PWMBDCRngMax1'
3042 */
3043 L4_MABX_B.max_relop_o = (L4_MABX_B.Pedal_2_pwm_dc_raw_value <
3044 L4_MABX_P.PWMBDCRngMax1_Value);
3045
3046 /* Logic: '<S754>/conjunction' */
3047 L4_MABX_B.conjunction_g = (L4_MABX_B.min_relop_j && L4_MABX_B.max_relop_o);
3048
3049 /* UnitDelay: '<S759>/FixPt Unit Delay2' */
3050 L4_MABX_B.FixPtUnitDelay2_g = L4_MABX_DW.FixPtUnitDelay2_DSTATE_i;
3051
3052 /* UnitDelay: '<S759>/FixPt Unit Delay1' */
3053 L4_MABX_B.Xold_p = L4_MABX_DW.FixPtUnitDelay1_DSTATE_f;
3054
3055 /* Switch: '<S759>/Init' incorporates:
3056 * Constant: '<S718>/PWMBDCRngFaultLimMin1'
3057 */
3058 if (L4_MABX_B.FixPtUnitDelay2_g != 0) {
3059 L4_MABX_B.Init_dh = L4_MABX_P.PWMBDCRngFaultLimMin1_Value;
3060 } else {
3061 L4_MABX_B.Init_dh = L4_MABX_B.Xold_p;
3062 }
3063
3064 /* End of Switch: '<S759>/Init' */
3065
3066 /* Sum: '<S755>/FixPt Sum1' incorporates:
3067 * Constant: '<S755>/FixPt Constant'
3068 */
3069 L4_MABX_B.FixPtSum1_hv = L4_MABX_B.Init_dh - L4_MABX_P.FixPtConstant_Value_m;
3070
3071 /* Sum: '<S758>/FixPt Sum1' incorporates:
3072 * Constant: '<S758>/FixPt Constant'
3073 */
3074 L4_MABX_B.FixPtSum1_d1 = L4_MABX_B.Init_dh + L4_MABX_P.FixPtConstant_Value_m0;
3075
3076 /* Outputs for Atomic SubSystem: '<S735>/If_Then_Else3' */
3077 L4_MABX_If_Then_Else(L4_MABX_B.conjunction_g, L4_MABX_B.FixPtSum1_hv,
3078 L4_MABX_B.FixPtSum1_d1, &L4_MABX_B.If_Then_Else3_l);
3079
3080 /* End of Outputs for SubSystem: '<S735>/If_Then_Else3' */
3081
3082 /* RelationalOperator: '<S756>/Relational Operator1' incorporates:
3083 * Constant: '<S718>/PWMBDCRngFaultLimMax1'
3084 */
3085 L4_MABX_B.RelationalOperator1_j = (L4_MABX_B.If_Then_Else3_l.Switch >=
3086 L4_MABX_P.PWMBDCRngFaultLimMax1_Value);
3087
3088 /* RelationalOperator: '<S756>/Relational Operator' incorporates:
3089 * Constant: '<S718>/PWMBDCRngFaultLimMin1'
3090 */
3091 L4_MABX_B.RelationalOperator_e = (L4_MABX_B.If_Then_Else3_l.Switch <=
3092 L4_MABX_P.PWMBDCRngFaultLimMin1_Value);
3093
3094 /* Outputs for Atomic SubSystem: '<S756>/If_Then_Else1' */
3095
3096 /* Constant: '<S718>/PWMBDCRngFaultLimMin1' */
3097 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_e,
3098 L4_MABX_P.PWMBDCRngFaultLimMin1_Value,
3099 L4_MABX_B.If_Then_Else3_l.Switch,
3100 &L4_MABX_B.If_Then_Else1_n);
3101
3102 /* End of Outputs for SubSystem: '<S756>/If_Then_Else1' */
3103
3104 /* Outputs for Atomic SubSystem: '<S756>/If_Then_Else' */
3105
3106 /* Constant: '<S718>/PWMBDCRngFaultLimMax1' */
3107 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_j,
3108 L4_MABX_P.PWMBDCRngFaultLimMax1_Value,
3109 L4_MABX_B.If_Then_Else1_n.Switch,
3110 &L4_MABX_B.If_Then_Else_b);
3111
3112 /* End of Outputs for SubSystem: '<S756>/If_Then_Else' */
3113
3114 /* RelationalOperator: '<S735>/Relational Operator9' incorporates:
3115 * Constant: '<S718>/PWMBDCRngFaultLimMin1'
3116 */
3117 L4_MABX_B.F_Fault_Soft_b = (L4_MABX_B.If_Then_Else_b.Switch !=
3118 L4_MABX_P.PWMBDCRngFaultLimMin1_Value);
3119
3120 /* Logic: '<S718>/Logical Operator4' */
3121 L4_MABX_B.LogicalOperator4 = (L4_MABX_B.F_Fault_Soft_e ||
3122 L4_MABX_B.F_Fault_Soft_b);
3123
3124 /* RelationalOperator: '<S736>/Relational Operator8' incorporates:
3125 * Constant: '<S718>/PWMBFreqRngFaultLimMax1'
3126 */
3127 L4_MABX_B.F_Fault_Hard_a = (L4_MABX_P.PWMBFreqRngFaultLimMax1_Value <=
3128 L4_MABX_B.If_Then_Else_n.Switch);
3129
3130 /* RelationalOperator: '<S735>/Relational Operator8' incorporates:
3131 * Constant: '<S718>/PWMBDCRngFaultLimMax1'
3132 */
3133 L4_MABX_B.F_Fault_Hard_l = (L4_MABX_P.PWMBDCRngFaultLimMax1_Value <=
3134 L4_MABX_B.If_Then_Else_b.Switch);
3135
3136 /* Logic: '<S718>/Logical Operator3' */
3137 L4_MABX_B.LogicalOperator3 = (L4_MABX_B.F_Fault_Hard_a ||
3138 L4_MABX_B.F_Fault_Hard_l);
3139
3140 /* Chart: '<S718>/Health State Machine PWM Sensor 2' */
3141 /* Gateway: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 2 */
3142 /* During: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 2 */
3143 if (L4_MABX_DW.is_active_c10_SUB_ECU_L4_MABX_H == 0U) {
3144 /* Entry: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 2 */
3145 L4_MABX_DW.is_active_c10_SUB_ECU_L4_MABX_H = 1U;
3146
3147 /* Entry Internal: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 2 */
3148 /* Transition: '<S732>:2' */
3149 L4_MABX_DW.is_c10_SUB_ECU_L4_MABX_HW_Inter = L4_MABX_IN_NO_FAILURE;
3150
3151 /* Entry 'NO_FAILURE': '<S732>:1' */
3152 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
3153 } else if (L4_MABX_DW.is_c10_SUB_ECU_L4_MABX_HW_Inter ==
3154 L4_MABX_IN_FAILURE_DETECTED) {
3155 /* During 'FAILURE_DETECTED': '<S732>:6' */
3156 if (L4_MABX_DW.is_FAILURE_DETECTED == L4_MABX_IN_ERROR) {
3157 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_ACTIVE;
3158
3159 /* During 'ERROR': '<S732>:8' */
3160 if (!L4_MABX_B.LogicalOperator3) {
3161 /* Transition: '<S732>:20' */
3162 L4_MABX_DW.is_FAILURE_DETECTED = L4_MABX_IN_PENDING;
3163
3164 /* Entry 'PENDING': '<S732>:7' */
3165 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
3166 }
3167 } else {
3168 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
3169
3170 /* During 'PENDING': '<S732>:7' */
3171 zcEvent = ((!L4_MABX_B.LogicalOperator4) && (!L4_MABX_B.LogicalOperator3));
3172 if (zcEvent) {
3173 /* Transition: '<S732>:9' */
3174 L4_MABX_DW.is_FAILURE_DETECTED = L4_MABX_IN_NO_ACTIVE_CHILD;
3175 L4_MABX_DW.is_c10_SUB_ECU_L4_MABX_HW_Inter = L4_MABX_IN_NO_FAILURE;
3176
3177 /* Entry 'NO_FAILURE': '<S732>:1' */
3178 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
3179 } else {
3180 if (L4_MABX_B.LogicalOperator3) {
3181 /* Transition: '<S732>:12' */
3182 L4_MABX_DW.is_FAILURE_DETECTED = L4_MABX_IN_ERROR;
3183
3184 /* Entry 'ERROR': '<S732>:8' */
3185 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_ACTIVE;
3186 }
3187 }
3188 }
3189 } else {
3190 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
3191
3192 /* During 'NO_FAILURE': '<S732>:1' */
3193 zcEvent = (L4_MABX_B.LogicalOperator4 || L4_MABX_B.LogicalOperator3);
3194 if (zcEvent) {
3195 /* Transition: '<S732>:10' */
3196 L4_MABX_DW.is_c10_SUB_ECU_L4_MABX_HW_Inter = L4_MABX_IN_FAILURE_DETECTED;
3197
3198 /* Entry 'FAILURE_DETECTED': '<S732>:6' */
3199 /* Entry Internal 'FAILURE_DETECTED': '<S732>:6' */
3200 /* Transition: '<S732>:11' */
3201 L4_MABX_DW.is_FAILURE_DETECTED = L4_MABX_IN_PENDING;
3202
3203 /* Entry 'PENDING': '<S732>:7' */
3204 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
3205 }
3206 }
3207
3208 /* End of Chart: '<S718>/Health State Machine PWM Sensor 2' */
3209
3210 /* RelationalOperator: '<S730>/Compare' incorporates:
3211 * Constant: '<S730>/Constant'
3212 */
3213 L4_MABX_B.Compare_k = (L4_MABX_B.Pedal_2_pwm_health_state ==
3214 L4_MABX_P.CompareToConstant2_const_d);
3215
3216 /* Logic: '<S718>/Logical Operator5' */
3217 L4_MABX_B.F_Pedal_pwm_sens_total_failure = (L4_MABX_B.Compare &&
3218 L4_MABX_B.Compare_k);
3219
3220 /* UnitDelay: '<S721>/Unit_Delay' */
3221 L4_MABX_B.Unit_Delay_e0 = L4_MABX_DW.Unit_Delay_DSTATE_d5;
3222
3223 /* UnitDelay: '<S788>/Unit_Delay1' */
3224 L4_MABX_B.Unit_Delay1 = L4_MABX_DW.Unit_Delay1_DSTATE;
3225
3226 /* Logic: '<S788>/Logical Operator' */
3227 L4_MABX_B.LogicalOperator_d = (L4_MABX_B.Unit_Delay_e0 ||
3228 L4_MABX_B.Unit_Delay1);
3229
3230 /* MinMax: '<S788>/MinMax1' incorporates:
3231 * Constant: '<S721>/PEDAL_PWM_SENSOR_DATA_APV.T1_CONST'
3232 * Constant: '<S721>/dT'
3233 */
3234 DeltaTime = L4_MABX_P.dT_Value;
3235 PositionFinalLimited = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVT1_CON;
3236 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
3237 PositionFinalLimited = DeltaTime;
3238 }
3239
3240 L4_MABX_B.MinMax1 = PositionFinalLimited;
3241
3242 /* End of MinMax: '<S788>/MinMax1' */
3243
3244 /* Saturate: '<S788>/Saturation' */
3245 DeltaTime = L4_MABX_B.MinMax1;
3246 Time56 = L4_MABX_P.Saturation_LowerSat_a;
3247 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_j;
3248 if (DeltaTime > PositionFinalLimited) {
3249 L4_MABX_B.Saturation = PositionFinalLimited;
3250 } else if (DeltaTime < Time56) {
3251 L4_MABX_B.Saturation = Time56;
3252 } else {
3253 L4_MABX_B.Saturation = DeltaTime;
3254 }
3255
3256 /* End of Saturate: '<S788>/Saturation' */
3257
3258 /* Product: '<S788>/Divide' incorporates:
3259 * Constant: '<S721>/dT'
3260 */
3261 L4_MABX_B.Divide = L4_MABX_P.dT_Value / L4_MABX_B.Saturation;
3262
3263 /* Product: '<S788>/Product2' */
3264 L4_MABX_B.Product2 = L4_MABX_B.Pedal_1_pwm_dc_raw_value * L4_MABX_B.Divide;
3265
3266 /* Sum: '<S788>/Subtract1' incorporates:
3267 * Constant: '<S788>/Constant1'
3268 */
3269 L4_MABX_B.Subtract1 = L4_MABX_P.Constant1_Value_ar - L4_MABX_B.Divide;
3270
3271 /* UnitDelay: '<S788>/Unit_Delay2' */
3272 L4_MABX_B.Unit_Delay2 = L4_MABX_DW.Unit_Delay2_DSTATE;
3273
3274 /* Product: '<S788>/Product1' */
3275 L4_MABX_B.Product1 = L4_MABX_B.Subtract1 * L4_MABX_B.Unit_Delay2;
3276
3277 /* Sum: '<S788>/Add1' */
3278 L4_MABX_B.Add1 = L4_MABX_B.Product2 + L4_MABX_B.Product1;
3279
3280 /* Outputs for Atomic SubSystem: '<S788>/If_Then_Else' */
3281 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_d,
3282 L4_MABX_B.Pedal_1_pwm_dc_raw_value, L4_MABX_B.Add1,
3283 &L4_MABX_B.If_Then_Else_iz);
3284
3285 /* End of Outputs for SubSystem: '<S788>/If_Then_Else' */
3286
3287 /* Lookup_n-D: '<S721>/PEDAL_PWM_ANGLE_SENS_1_MPV' */
3288 L4_MABX_B.Pedal_1_pwm_undefault = look1_binlcapw
3289 (L4_MABX_B.If_Then_Else_iz.Switch, L4_MABX_P.PEDAL_PWM_ANGLE_SENS_1_MPV_bp01,
3290 L4_MABX_P.PEDAL_PWM_ANGLE_SENS_1_MPV_tabl, 7U);
3291
3292 /* UnitDelay: '<S721>/Unit_Delay1' */
3293 L4_MABX_B.Unit_Delay1_m = L4_MABX_DW.Unit_Delay1_DSTATE_c;
3294
3295 /* UnitDelay: '<S789>/Unit_Delay1' */
3296 L4_MABX_B.Unit_Delay1_a = L4_MABX_DW.Unit_Delay1_DSTATE_i;
3297
3298 /* Logic: '<S789>/Logical Operator' */
3299 L4_MABX_B.LogicalOperator_a = (L4_MABX_B.Unit_Delay1_m ||
3300 L4_MABX_B.Unit_Delay1_a);
3301
3302 /* MinMax: '<S789>/MinMax1' incorporates:
3303 * Constant: '<S721>/PEDAL_PWM_SENSOR_DATA_APV.T2_CONST'
3304 * Constant: '<S721>/dT1'
3305 */
3306 DeltaTime = L4_MABX_P.dT1_Value;
3307 PositionFinalLimited = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVT2_CON;
3308 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
3309 PositionFinalLimited = DeltaTime;
3310 }
3311
3312 L4_MABX_B.MinMax1_m = PositionFinalLimited;
3313
3314 /* End of MinMax: '<S789>/MinMax1' */
3315
3316 /* Saturate: '<S789>/Saturation' */
3317 DeltaTime = L4_MABX_B.MinMax1_m;
3318 Time56 = L4_MABX_P.Saturation_LowerSat_j;
3319 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_m;
3320 if (DeltaTime > PositionFinalLimited) {
3321 L4_MABX_B.Saturation_d = PositionFinalLimited;
3322 } else if (DeltaTime < Time56) {
3323 L4_MABX_B.Saturation_d = Time56;
3324 } else {
3325 L4_MABX_B.Saturation_d = DeltaTime;
3326 }
3327
3328 /* End of Saturate: '<S789>/Saturation' */
3329
3330 /* Product: '<S789>/Divide' incorporates:
3331 * Constant: '<S721>/dT1'
3332 */
3333 L4_MABX_B.Divide_m = L4_MABX_P.dT1_Value / L4_MABX_B.Saturation_d;
3334
3335 /* Product: '<S789>/Product2' */
3336 L4_MABX_B.Product2_o = L4_MABX_B.Pedal_2_pwm_freq_raw_value *
3337 L4_MABX_B.Divide_m;
3338
3339 /* Sum: '<S789>/Subtract1' incorporates:
3340 * Constant: '<S789>/Constant1'
3341 */
3342 L4_MABX_B.Subtract1_i = L4_MABX_P.Constant1_Value_c3 - L4_MABX_B.Divide_m;
3343
3344 /* UnitDelay: '<S789>/Unit_Delay2' */
3345 L4_MABX_B.Unit_Delay2_h = L4_MABX_DW.Unit_Delay2_DSTATE_j;
3346
3347 /* Product: '<S789>/Product1' */
3348 L4_MABX_B.Product1_a = L4_MABX_B.Subtract1_i * L4_MABX_B.Unit_Delay2_h;
3349
3350 /* Sum: '<S789>/Add1' */
3351 L4_MABX_B.Add1_c = L4_MABX_B.Product2_o + L4_MABX_B.Product1_a;
3352
3353 /* Outputs for Atomic SubSystem: '<S789>/If_Then_Else' */
3354 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_a,
3355 L4_MABX_B.Pedal_2_pwm_freq_raw_value, L4_MABX_B.Add1_c,
3356 &L4_MABX_B.If_Then_Else_p1);
3357
3358 /* End of Outputs for SubSystem: '<S789>/If_Then_Else' */
3359
3360 /* Lookup_n-D: '<S721>/PEDAL_PWM_ANGLE_SENS_2_MPV' */
3361 L4_MABX_B.Pedal_2_pwm_undefault = look1_binlcapw
3362 (L4_MABX_B.If_Then_Else_p1.Switch, L4_MABX_P.PEDAL_PWM_ANGLE_SENS_2_MPV_bp01,
3363 L4_MABX_P.PEDAL_PWM_ANGLE_SENS_2_MPV_tabl, 7U);
3364
3365 /* Sum: '<S723>/Subtract' */
3366 L4_MABX_B.Subtract = L4_MABX_B.Pedal_1_pwm_undefault -
3367 L4_MABX_B.Pedal_2_pwm_undefault;
3368
3369 /* Abs: '<S723>/Abs' */
3370 L4_MABX_B.Abs = fabs(L4_MABX_B.Subtract);
3371
3372 /* RelationalOperator: '<S725>/Compare' incorporates:
3373 * Constant: '<S725>/Constant'
3374 */
3375 L4_MABX_B.Compare_n = (L4_MABX_B.Pedal_1_pwm_health_state ==
3376 L4_MABX_P.CompareToConstant3_const_e);
3377
3378 /* RelationalOperator: '<S781>/Compare' incorporates:
3379 * Constant: '<S781>/Constant'
3380 */
3381 L4_MABX_B.Compare_h = (L4_MABX_B.Pedal_2_pwm_health_state ==
3382 L4_MABX_P.CompareToConstant5_const);
3383
3384 /* Logic: '<S719>/Logical Operator7' */
3385 L4_MABX_B.LogicalOperator7 = !L4_MABX_B.Compare_h;
3386
3387 /* RelationalOperator: '<S780>/Compare' incorporates:
3388 * Constant: '<S780>/Constant'
3389 */
3390 L4_MABX_B.Compare_f = (L4_MABX_B.Pedal_2_pwm_health_state ==
3391 L4_MABX_P.CompareToConstant4_const);
3392
3393 /* Logic: '<S719>/Logical Operator8' */
3394 L4_MABX_B.LogicalOperator8 = !L4_MABX_B.Compare_f;
3395
3396 /* UnitDelay: '<S787>/FixPt Unit Delay2' */
3397 L4_MABX_B.FixPtUnitDelay2_c = L4_MABX_DW.FixPtUnitDelay2_DSTATE_c;
3398
3399 /* UnitDelay: '<S787>/FixPt Unit Delay1' */
3400 L4_MABX_B.Xold_b = L4_MABX_DW.FixPtUnitDelay1_DSTATE_b;
3401
3402 /* Switch: '<S787>/Init' incorporates:
3403 * Constant: '<S715>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE'
3404 */
3405 if (L4_MABX_B.FixPtUnitDelay2_c != 0) {
3406 L4_MABX_B.Init_dd = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL;
3407 } else {
3408 L4_MABX_B.Init_dd = L4_MABX_B.Xold_b;
3409 }
3410
3411 /* End of Switch: '<S787>/Init' */
3412
3413 /* Outputs for Atomic SubSystem: '<S719>/If_Then_Else3' */
3414 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator8,
3415 L4_MABX_B.Pedal_2_pwm_undefault, L4_MABX_B.Init_dd,
3416 &L4_MABX_B.If_Then_Else3_f);
3417
3418 /* End of Outputs for SubSystem: '<S719>/If_Then_Else3' */
3419
3420 /* Outputs for Atomic SubSystem: '<S719>/If_Then_Else2' */
3421
3422 /* Constant: '<S715>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE' */
3423 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator7,
3424 L4_MABX_B.If_Then_Else3_f.Switch,
3425 L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL,
3426 &L4_MABX_B.If_Then_Else2_f);
3427
3428 /* End of Outputs for SubSystem: '<S719>/If_Then_Else2' */
3429
3430 /* RelationalOperator: '<S779>/Compare' incorporates:
3431 * Constant: '<S779>/Constant'
3432 */
3433 L4_MABX_B.Compare_l = (L4_MABX_B.Pedal_1_pwm_health_state ==
3434 L4_MABX_P.CompareToConstant3_const_b);
3435
3436 /* Logic: '<S719>/Logical Operator5' */
3437 L4_MABX_B.LogicalOperator5 = !L4_MABX_B.Compare_l;
3438
3439 /* RelationalOperator: '<S778>/Compare' incorporates:
3440 * Constant: '<S778>/Constant'
3441 */
3442 L4_MABX_B.Compare_hm = (L4_MABX_B.Pedal_1_pwm_health_state ==
3443 L4_MABX_P.CompareToConstant1_const_jx);
3444
3445 /* Logic: '<S719>/Logical Operator6' */
3446 L4_MABX_B.LogicalOperator6 = !L4_MABX_B.Compare_hm;
3447
3448 /* UnitDelay: '<S786>/FixPt Unit Delay2' */
3449 L4_MABX_B.FixPtUnitDelay2_l = L4_MABX_DW.FixPtUnitDelay2_DSTATE_e;
3450
3451 /* UnitDelay: '<S786>/FixPt Unit Delay1' */
3452 L4_MABX_B.Xold_h = L4_MABX_DW.FixPtUnitDelay1_DSTATE_e;
3453
3454 /* Switch: '<S786>/Init' incorporates:
3455 * Constant: '<S715>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE'
3456 */
3457 if (L4_MABX_B.FixPtUnitDelay2_l != 0) {
3458 L4_MABX_B.Init_d2 = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL;
3459 } else {
3460 L4_MABX_B.Init_d2 = L4_MABX_B.Xold_h;
3461 }
3462
3463 /* End of Switch: '<S786>/Init' */
3464
3465 /* Outputs for Atomic SubSystem: '<S719>/If_Then_Else1' */
3466 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator6,
3467 L4_MABX_B.Pedal_1_pwm_undefault, L4_MABX_B.Init_d2,
3468 &L4_MABX_B.If_Then_Else1_l);
3469
3470 /* End of Outputs for SubSystem: '<S719>/If_Then_Else1' */
3471
3472 /* Outputs for Atomic SubSystem: '<S719>/If_Then_Else' */
3473
3474 /* Constant: '<S715>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE' */
3475 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator5,
3476 L4_MABX_B.If_Then_Else1_l.Switch,
3477 L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL,
3478 &L4_MABX_B.If_Then_Else_l);
3479
3480 /* End of Outputs for SubSystem: '<S719>/If_Then_Else' */
3481
3482 /* Outputs for Atomic SubSystem: '<S717>/If_Then_Else1' */
3483 L4_MABX_If_Then_Else(L4_MABX_B.Compare_n, L4_MABX_B.If_Then_Else2_f.Switch,
3484 L4_MABX_B.If_Then_Else_l.Switch, &L4_MABX_B.If_Then_Else1);
3485
3486 /* End of Outputs for SubSystem: '<S717>/If_Then_Else1' */
3487
3488 /* RelationalOperator: '<S724>/Compare' incorporates:
3489 * Constant: '<S724>/Constant'
3490 */
3491 L4_MABX_B.Compare_a = (L4_MABX_B.Pedal_2_pwm_health_state ==
3492 L4_MABX_P.CompareToConstant1_const_j2);
3493
3494 /* Outputs for Atomic SubSystem: '<S717>/If_Then_Else2' */
3495 L4_MABX_If_Then_Else(L4_MABX_B.Compare_a, L4_MABX_B.If_Then_Else_l.Switch,
3496 L4_MABX_B.If_Then_Else2_f.Switch,
3497 &L4_MABX_B.If_Then_Else2);
3498
3499 /* End of Outputs for SubSystem: '<S717>/If_Then_Else2' */
3500
3501 /* MinMax: '<S717>/MinMax' */
3502 DeltaTime = L4_MABX_B.If_Then_Else1.Switch;
3503 PositionFinalLimited = L4_MABX_B.If_Then_Else2.Switch;
3504 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
3505 PositionFinalLimited = DeltaTime;
3506 }
3507
3508 L4_MABX_B.MinMax = PositionFinalLimited;
3509
3510 /* End of MinMax: '<S717>/MinMax' */
3511
3512 /* Outputs for Atomic SubSystem: '<S717>/If_Then_Else' */
3513
3514 /* Constant: '<S715>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE' */
3515 L4_MABX_If_Then_Else(L4_MABX_B.F_Pedal_pwm_sens_total_failure,
3516 L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL,
3517 L4_MABX_B.MinMax, &L4_MABX_B.If_Then_Else_i);
3518
3519 /* End of Outputs for SubSystem: '<S717>/If_Then_Else' */
3520
3521 /* Lookup_n-D: '<S723>/PEDAL_PWM_ANGLE_DEV_MPV' */
3522 L4_MABX_B.PEDAL_PWM_ANGLE_DEV_MPV = look1_binlcapw
3523 (L4_MABX_B.If_Then_Else_i.Switch, L4_MABX_P.PEDAL_PWM_ANGLE_DEV_MPV_bp01Dat,
3524 L4_MABX_P.PEDAL_PWM_ANGLE_DEV_MPV_tableDa, 7U);
3525
3526 /* RelationalOperator: '<S723>/Relational Operator' */
3527 L4_MABX_B.F_Pedal_pwm_sync_fault = (L4_MABX_B.Abs >
3528 L4_MABX_B.PEDAL_PWM_ANGLE_DEV_MPV);
3529
3530 /* DataTypeConversion: '<S718>/Data Type Conversion2' */
3531 L4_MABX_B.DataTypeConversion2 = L4_MABX_B.F_Pedal_pwm_sync_fault;
3532
3533 /* RelationalOperator: '<S770>/min_relop' incorporates:
3534 * Constant: '<S718>/PWMSynchRngMin'
3535 */
3536 L4_MABX_B.min_relop_h = (L4_MABX_P.PWMSynchRngMin_Value <
3537 L4_MABX_B.DataTypeConversion2);
3538
3539 /* RelationalOperator: '<S770>/max_relop' incorporates:
3540 * Constant: '<S718>/PWMSynchRngMax'
3541 */
3542 L4_MABX_B.max_relop_cr = (L4_MABX_B.DataTypeConversion2 <
3543 L4_MABX_P.PWMSynchRngMax_Value);
3544
3545 /* Logic: '<S770>/conjunction' */
3546 L4_MABX_B.conjunction_l = (L4_MABX_B.min_relop_h && L4_MABX_B.max_relop_cr);
3547
3548 /* UnitDelay: '<S775>/FixPt Unit Delay2' */
3549 L4_MABX_B.FixPtUnitDelay2_h = L4_MABX_DW.FixPtUnitDelay2_DSTATE_n;
3550
3551 /* UnitDelay: '<S775>/FixPt Unit Delay1' */
3552 L4_MABX_B.Xold_n = L4_MABX_DW.FixPtUnitDelay1_DSTATE_k;
3553
3554 /* Switch: '<S775>/Init' incorporates:
3555 * Constant: '<S718>/PWMSynchFaultLimMin'
3556 */
3557 if (L4_MABX_B.FixPtUnitDelay2_h != 0) {
3558 L4_MABX_B.Init_n = L4_MABX_P.PWMSynchFaultLimMin_Value;
3559 } else {
3560 L4_MABX_B.Init_n = L4_MABX_B.Xold_n;
3561 }
3562
3563 /* End of Switch: '<S775>/Init' */
3564
3565 /* Sum: '<S771>/FixPt Sum1' incorporates:
3566 * Constant: '<S771>/FixPt Constant'
3567 */
3568 L4_MABX_B.FixPtSum1_l = L4_MABX_B.Init_n - L4_MABX_P.FixPtConstant_Value_i3;
3569
3570 /* Sum: '<S774>/FixPt Sum1' incorporates:
3571 * Constant: '<S774>/FixPt Constant'
3572 */
3573 L4_MABX_B.FixPtSum1_c = L4_MABX_B.Init_n + L4_MABX_P.FixPtConstant_Value_is;
3574
3575 /* Outputs for Atomic SubSystem: '<S737>/If_Then_Else3' */
3576 L4_MABX_If_Then_Else(L4_MABX_B.conjunction_l, L4_MABX_B.FixPtSum1_l,
3577 L4_MABX_B.FixPtSum1_c, &L4_MABX_B.If_Then_Else3_j);
3578
3579 /* End of Outputs for SubSystem: '<S737>/If_Then_Else3' */
3580
3581 /* RelationalOperator: '<S772>/Relational Operator1' incorporates:
3582 * Constant: '<S718>/PWMSynchFaultLimMax'
3583 */
3584 L4_MABX_B.RelationalOperator1_p = (L4_MABX_B.If_Then_Else3_j.Switch >=
3585 L4_MABX_P.PWMSynchFaultLimMax_Value);
3586
3587 /* RelationalOperator: '<S772>/Relational Operator' incorporates:
3588 * Constant: '<S718>/PWMSynchFaultLimMin'
3589 */
3590 L4_MABX_B.RelationalOperator_f = (L4_MABX_B.If_Then_Else3_j.Switch <=
3591 L4_MABX_P.PWMSynchFaultLimMin_Value);
3592
3593 /* Outputs for Atomic SubSystem: '<S772>/If_Then_Else1' */
3594
3595 /* Constant: '<S718>/PWMSynchFaultLimMin' */
3596 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_f,
3597 L4_MABX_P.PWMSynchFaultLimMin_Value,
3598 L4_MABX_B.If_Then_Else3_j.Switch,
3599 &L4_MABX_B.If_Then_Else1_nx);
3600
3601 /* End of Outputs for SubSystem: '<S772>/If_Then_Else1' */
3602
3603 /* Outputs for Atomic SubSystem: '<S772>/If_Then_Else' */
3604
3605 /* Constant: '<S718>/PWMSynchFaultLimMax' */
3606 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_p,
3607 L4_MABX_P.PWMSynchFaultLimMax_Value,
3608 L4_MABX_B.If_Then_Else1_nx.Switch,
3609 &L4_MABX_B.If_Then_Else_m);
3610
3611 /* End of Outputs for SubSystem: '<S772>/If_Then_Else' */
3612
3613 /* RelationalOperator: '<S737>/Relational Operator8' incorporates:
3614 * Constant: '<S718>/PWMSynchFaultLimMax'
3615 */
3616 L4_MABX_B.F_Fault_Hard_p = (L4_MABX_P.PWMSynchFaultLimMax_Value <=
3617 L4_MABX_B.If_Then_Else_m.Switch);
3618
3619 /* Logic: '<S715>/Logical Operator6' */
3620 L4_MABX_B.LogicalOperator6_m = (L4_MABX_B.F_Pedal_pwm_sens_total_failure ||
3621 L4_MABX_B.F_Fault_Hard_p);
3622
3623 /* Outputs for Enabled SubSystem: '<S715>/Slew_at_event' incorporates:
3624 * EnablePort: '<S722>/Enable'
3625 */
3626 /* Constant: '<S715>/F_PEDAL_TORQUE_SLEW_AT_FAULT' */
3627 if (L4_MABX_P.F_PEDAL_TORQUE_SLEW_AT_FAULT_Va) {
3628 if (!L4_MABX_DW.Slew_at_event_MODE) {
3629 /* InitializeConditions for UnitDelay: '<S793>/Unit_Delay' */
3630 L4_MABX_DW.Unit_Delay_DSTATE_fk = L4_MABX_P.Unit_Delay_InitialCondition_n;
3631
3632 /* InitializeConditions for UnitDelay: '<S794>/Unit_Delay' */
3633 L4_MABX_DW.Unit_Delay_DSTATE_fo = L4_MABX_P.Unit_Delay_InitialCondition_c3;
3634
3635 /* InitializeConditions for UnitDelay: '<S797>/FixPt Unit Delay2' */
3636 L4_MABX_DW.FixPtUnitDelay2_DSTATE_m =
3637 L4_MABX_P.FixPtUnitDelay2_InitialCondi_e1;
3638
3639 /* InitializeConditions for UnitDelay: '<S797>/FixPt Unit Delay1' */
3640 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g =
3641 L4_MABX_P.FixPtUnitDelay1_InitialCondit_c;
3642
3643 /* InitializeConditions for UnitDelay: '<S792>/Unit_Delay' */
3644 L4_MABX_DW.Unit_Delay_DSTATE_ki = L4_MABX_P.Unit_Delay_InitialCondition_c4;
3645 L4_MABX_DW.Slew_at_event_MODE = true;
3646 }
3647
3648 /* UnitDelay: '<S793>/Unit_Delay' */
3649 L4_MABX_B.Unit_Delay_l2 = L4_MABX_DW.Unit_Delay_DSTATE_fk;
3650
3651 /* Logic: '<S793>/Logical Operator1' */
3652 L4_MABX_B.LogicalOperator1_e = !L4_MABX_B.Unit_Delay_l2;
3653
3654 /* Logic: '<S793>/Logical Operator' */
3655 L4_MABX_B.LogicalOperator_c = (L4_MABX_B.LogicalOperator6_m &&
3656 L4_MABX_B.LogicalOperator1_e);
3657
3658 /* UnitDelay: '<S794>/Unit_Delay' */
3659 L4_MABX_B.Unit_Delay_o = L4_MABX_DW.Unit_Delay_DSTATE_fo;
3660
3661 /* Logic: '<S794>/Logical Operator1' */
3662 L4_MABX_B.LogicalOperator1_b = (L4_MABX_B.LogicalOperator_c ||
3663 L4_MABX_B.Unit_Delay_o);
3664
3665 /* UnitDelay: '<S797>/FixPt Unit Delay2' */
3666 L4_MABX_B.FixPtUnitDelay2_i = L4_MABX_DW.FixPtUnitDelay2_DSTATE_m;
3667
3668 /* UnitDelay: '<S797>/FixPt Unit Delay1' */
3669 L4_MABX_B.Xold_g3 = L4_MABX_DW.FixPtUnitDelay1_DSTATE_g;
3670
3671 /* Switch: '<S797>/Init' incorporates:
3672 * Constant: '<S715>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE'
3673 */
3674 if (L4_MABX_B.FixPtUnitDelay2_i != 0) {
3675 L4_MABX_B.Init_m = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL;
3676 } else {
3677 L4_MABX_B.Init_m = L4_MABX_B.Xold_g3;
3678 }
3679
3680 /* End of Switch: '<S797>/Init' */
3681
3682 /* Abs: '<S794>/Abs' incorporates:
3683 * Constant: '<S715>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_SLEW_UP'
3684 */
3685 L4_MABX_B.Abs_b = fabs(L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFA_h);
3686
3687 /* Product: '<S794>/Product1' incorporates:
3688 * Constant: '<S715>/PEDAL_PWM_SENSOR_DATA_APV.DT'
3689 */
3690 L4_MABX_B.Product1_o = L4_MABX_B.Abs_b *
3691 L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDT_Val;
3692
3693 /* Sum: '<S794>/Add1' */
3694 L4_MABX_B.Add1_n = L4_MABX_B.Init_m + L4_MABX_B.Product1_o;
3695
3696 /* MinMax: '<S794>/MinMax2' incorporates:
3697 * Constant: '<S715>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE'
3698 */
3699 DeltaTime = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL;
3700 PositionFinalLimited = L4_MABX_B.Add1_n;
3701 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
3702 PositionFinalLimited = DeltaTime;
3703 }
3704
3705 L4_MABX_B.MinMax2 = PositionFinalLimited;
3706
3707 /* End of MinMax: '<S794>/MinMax2' */
3708
3709 /* Abs: '<S794>/Abs1' incorporates:
3710 * Constant: '<S715>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_SLEW_DOWN'
3711 */
3712 L4_MABX_B.Abs1 = fabs(L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFA_i);
3713
3714 /* Product: '<S794>/Product2' incorporates:
3715 * Constant: '<S715>/PEDAL_PWM_SENSOR_DATA_APV.DT'
3716 */
3717 L4_MABX_B.Product2_e = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDT_Val *
3718 L4_MABX_B.Abs1;
3719
3720 /* Sum: '<S794>/Subtract1' */
3721 L4_MABX_B.Subtract1_e = L4_MABX_B.Init_m - L4_MABX_B.Product2_e;
3722
3723 /* MinMax: '<S794>/MinMax1' */
3724 DeltaTime = L4_MABX_B.MinMax2;
3725 PositionFinalLimited = L4_MABX_B.Subtract1_e;
3726 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
3727 PositionFinalLimited = DeltaTime;
3728 }
3729
3730 L4_MABX_B.MinMax1_h = PositionFinalLimited;
3731
3732 /* End of MinMax: '<S794>/MinMax1' */
3733
3734 /* Outputs for Atomic SubSystem: '<S794>/If_Then_Else' */
3735 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_b,
3736 L4_MABX_B.If_Then_Else_i.Switch, L4_MABX_B.MinMax1_h,
3737 &L4_MABX_B.If_Then_Else_ki);
3738
3739 /* End of Outputs for SubSystem: '<S794>/If_Then_Else' */
3740
3741 /* Sum: '<S722>/Subtract' incorporates:
3742 * Constant: '<S715>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE'
3743 */
3744 L4_MABX_B.Subtract_o = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL -
3745 L4_MABX_B.If_Then_Else_ki.Switch;
3746
3747 /* Abs: '<S722>/Abs' */
3748 L4_MABX_B.Abs_l = fabs(L4_MABX_B.Subtract_o);
3749
3750 /* RelationalOperator: '<S722>/Relational Operator1' incorporates:
3751 * Constant: '<S722>/Constant1'
3752 */
3753 L4_MABX_B.RelationalOperator1_jf = (L4_MABX_B.Abs_l <=
3754 L4_MABX_P.Constant1_Value_pp);
3755
3756 /* Logic: '<S792>/Logical Operator3' */
3757 L4_MABX_B.LogicalOperator3_e = !L4_MABX_B.RelationalOperator1_jf;
3758
3759 /* UnitDelay: '<S792>/Unit_Delay' */
3760 L4_MABX_B.Unit_Delay_b5 = L4_MABX_DW.Unit_Delay_DSTATE_ki;
3761
3762 /* Logic: '<S792>/Logical Operator1' */
3763 L4_MABX_B.LogicalOperator1_hj = (L4_MABX_B.LogicalOperator6_m ||
3764 L4_MABX_B.Unit_Delay_b5);
3765
3766 /* Logic: '<S792>/Logical Operator' */
3767 L4_MABX_B.LogicalOperator_p = (L4_MABX_B.LogicalOperator3_e &&
3768 L4_MABX_B.LogicalOperator1_hj);
3769
3770 /* Logic: '<S792>/Logical Operator2' */
3771 L4_MABX_B.LogicalOperator2_k = !L4_MABX_B.LogicalOperator_p;
3772
3773 /* RelationalOperator: '<S795>/min_relop' incorporates:
3774 * Constant: '<S715>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_SLEW_UP'
3775 * Constant: '<S795>/min_val'
3776 */
3777 L4_MABX_B.min_relop_m = (L4_MABX_P.CheckStaticLowerBound_min_e <=
3778 L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFA_h);
3779
3780 /* Assertion: '<S795>/Assertion' */
3781 utAssert(L4_MABX_B.min_relop_m);
3782 } else {
3783 if (L4_MABX_DW.Slew_at_event_MODE) {
3784 /* Disable for Outport: '<S722>/F_Out_slewing' */
3785 L4_MABX_B.LogicalOperator_p = L4_MABX_P.F_Out_slewing_Y0_i;
3786
3787 /* Disable for Outport: '<S722>/Out' */
3788 L4_MABX_B.If_Then_Else_ki.Switch = L4_MABX_P.Out_Y0_m;
3789 L4_MABX_DW.Slew_at_event_MODE = false;
3790 }
3791 }
3792
3793 /* End of Constant: '<S715>/F_PEDAL_TORQUE_SLEW_AT_FAULT' */
3794 /* End of Outputs for SubSystem: '<S715>/Slew_at_event' */
3795
3796 /* Outputs for Atomic SubSystem: '<S715>/If_Then_Else' */
3797 L4_MABX_If_Then_Else_p(L4_MABX_B.LogicalOperator_p,
3798 L4_MABX_B.If_Then_Else_ki.Switch, L4_MABX_B.If_Then_Else_i.Switch);
3799
3800 /* End of Outputs for SubSystem: '<S715>/If_Then_Else' */
3801
3802 /* S-Function (rti_commonblock): '<S707>/S-Function1' */
3803 /* This comment workarounds a code generation problem */
3804 {
3805 /* dSPACE I/O Board DS1401STDADCT4 #1 Unit:ADC Group:ADC */
3806 adc_tp4_single_new_read(ADC_TP4_1_MODULE_ADDR,
3807 ADC_TP4_CH3,
3808 (dsfloat *)&L4_MABX_B.SFunction1);
3809 }
3810
3811 /* Gain: '<S402>/KL15_Monitor' */
3812 L4_MABX_B.IgnitionKeySwitch_voltage = L4_MABX_P.KL15_Monitor_Gain *
3813 L4_MABX_B.SFunction1;
3814
3815 /* Outputs for Enabled SubSystem: '<S493>/CCVS1_31' incorporates:
3816 * EnablePort: '<S494>/Enable'
3817 */
3818 /* Constant: '<S416>/Constant' */
3819 if (L4_MABX_P.Constant_Value_e0) {
3820 /* S-Function (rti_commonblock): '<S494>/S-Function1' */
3821 /* This comment workarounds a code generation problem */
3822
3823 /* dSPACE RTICAN RX Message Block: "CCVS1_31" Id:419361073 */
3824 {
3825 UInt32 *CAN_Msg;
3826 static dsfloat time_old = 0.0;
3827
3828 /* Read status and timestamp info (previous message) */
3829 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF131].timestamp !=
3830 time_old) {
3831 /* ... save timestamp info for the calculation of the RX status
3832 during the consecutive sample hit*/
3833 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF131].
3834 timestamp;
3835
3836 /* ... set the processed flag to one */
3837 L4_MABX_B.SFunction1_o21_p = 1.0;
3838 L4_MABX_B.SFunction1_o22_h = (real_T)
3839 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF131].timestamp;
3840 L4_MABX_B.SFunction1_o23_g = (real_T)
3841 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF131].deltatime;
3842 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF131].data;
3843
3844 /* Decode CAN message */
3845 {
3846 {
3847 rtican_Signal_t CAN_Sgn;
3848
3849 /* ...... "TwoSpeedAxleSwitch" (0|2, standard signal, unsigned int, little endian) */
3850 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
3851 CAN_Sgn.UnsignedSgn &= 0x00000003;
3852 L4_MABX_B.SFunction1_o1_fy = ((real_T) CAN_Sgn.UnsignedSgn);
3853
3854 /* ...... "ParkingBrakeSwitch" (2|2, standard signal, unsigned int, little endian) */
3855 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
3856 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
3857 CAN_Sgn.UnsignedSgn &= 0x00000003;
3858 L4_MABX_B.SFunction1_o2_ez = ((real_T) CAN_Sgn.UnsignedSgn);
3859
3860 /* ...... "CruiseCtrlPauseSwitch" (4|2, standard signal, unsigned int, little endian) */
3861 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
3862 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
3863 CAN_Sgn.UnsignedSgn &= 0x00000003;
3864 L4_MABX_B.SFunction1_o3_jq = ((real_T) CAN_Sgn.UnsignedSgn);
3865
3866 /* ...... "ParkBrakeReleaseInhibitRq" (6|2, standard signal, unsigned int, little endian) */
3867 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
3868 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
3869 CAN_Sgn.UnsignedSgn &= 0x00000003;
3870 L4_MABX_B.SFunction1_o4_dz = ((real_T) CAN_Sgn.UnsignedSgn);
3871
3872 /* ...... "WheelBasedVehicleSpeed" (8|16, standard signal, unsigned int, little endian) */
3873 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
3874 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
3875 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
3876 L4_MABX_B.SFunction1_o5_oc = 0.00390625 * ( ((real_T)
3877 CAN_Sgn.UnsignedSgn) );
3878
3879 /* ...... "CruiseCtrlActive" (24|2, standard signal, unsigned int, little endian) */
3880 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
3881 CAN_Sgn.UnsignedSgn &= 0x00000003;
3882 L4_MABX_B.SFunction1_o6_he = ((real_T) CAN_Sgn.UnsignedSgn);
3883
3884 /* ...... "CruiseCtrlEnableSwitch" (26|2, standard signal, unsigned int, little endian) */
3885 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
3886 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
3887 CAN_Sgn.UnsignedSgn &= 0x00000003;
3888 L4_MABX_B.SFunction1_o7_c = ((real_T) CAN_Sgn.UnsignedSgn);
3889
3890 /* ...... "BrakeSwitch" (28|2, standard signal, unsigned int, little endian) */
3891 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
3892 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
3893 CAN_Sgn.UnsignedSgn &= 0x00000003;
3894 L4_MABX_B.SFunction1_o8_jt = ((real_T) CAN_Sgn.UnsignedSgn);
3895
3896 /* ...... "ClutchSwitch" (30|2, standard signal, unsigned int, little endian) */
3897 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
3898 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
3899 CAN_Sgn.UnsignedSgn &= 0x00000003;
3900 L4_MABX_B.SFunction1_o9_lc = ((real_T) CAN_Sgn.UnsignedSgn);
3901
3902 /* ...... "CruiseCtrlSetSwitch" (32|2, standard signal, unsigned int, little endian) */
3903 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
3904 CAN_Sgn.UnsignedSgn &= 0x00000003;
3905 L4_MABX_B.SFunction1_o10_lg = ((real_T) CAN_Sgn.UnsignedSgn);
3906
3907 /* ...... "CruiseCtrlCoastSwitch" (34|2, standard signal, unsigned int, little endian) */
3908 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
3909 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
3910 CAN_Sgn.UnsignedSgn &= 0x00000003;
3911 L4_MABX_B.SFunction1_o11_mn = ((real_T) CAN_Sgn.UnsignedSgn);
3912
3913 /* ...... "CruiseCtrlResumeSwitch" (36|2, standard signal, unsigned int, little endian) */
3914 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
3915 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
3916 CAN_Sgn.UnsignedSgn &= 0x00000003;
3917 L4_MABX_B.SFunction1_o12_ir = ((real_T) CAN_Sgn.UnsignedSgn);
3918
3919 /* ...... "CruiseCtrlAccelerateSwitch" (38|2, standard signal, unsigned int, little endian) */
3920 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
3921 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
3922 CAN_Sgn.UnsignedSgn &= 0x00000003;
3923 L4_MABX_B.SFunction1_o13_fh = ((real_T) CAN_Sgn.UnsignedSgn);
3924
3925 /* ...... "CruiseCtrlSetSpeed" (40|8, standard signal, unsigned int, little endian) */
3926 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
3927 CAN_Sgn.UnsignedSgn &= 0x000000FF;
3928 L4_MABX_B.SFunction1_o14_l = ((real_T) CAN_Sgn.UnsignedSgn);
3929
3930 /* ...... "PTOGovernorState" (48|5, standard signal, unsigned int, little endian) */
3931 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
3932 CAN_Sgn.UnsignedSgn &= 0x0000001F;
3933 L4_MABX_B.SFunction1_o15_a = ((real_T) CAN_Sgn.UnsignedSgn);
3934
3935 /* ...... "CruiseCtrlStates" (53|3, standard signal, unsigned int, little endian) */
3936 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
3937 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 5;
3938 CAN_Sgn.UnsignedSgn &= 0x00000007;
3939 L4_MABX_B.SFunction1_o16_m = ((real_T) CAN_Sgn.UnsignedSgn);
3940
3941 /* ...... "EngIdleIncrementSwitch" (56|2, standard signal, unsigned int, little endian) */
3942 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
3943 CAN_Sgn.UnsignedSgn &= 0x00000003;
3944 L4_MABX_B.SFunction1_o17_d2 = ((real_T) CAN_Sgn.UnsignedSgn);
3945
3946 /* ...... "EngIdleDecrementSwitch" (58|2, standard signal, unsigned int, little endian) */
3947 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
3948 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
3949 CAN_Sgn.UnsignedSgn &= 0x00000003;
3950 L4_MABX_B.SFunction1_o18_m = ((real_T) CAN_Sgn.UnsignedSgn);
3951
3952 /* ...... "EngTestModeSwitch" (60|2, standard signal, unsigned int, little endian) */
3953 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
3954 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
3955 CAN_Sgn.UnsignedSgn &= 0x00000003;
3956 L4_MABX_B.SFunction1_o19_m = ((real_T) CAN_Sgn.UnsignedSgn);
3957
3958 /* ...... "EngShutdownOverrideSwitch" (62|2, standard signal, unsigned int, little endian) */
3959 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
3960 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
3961 CAN_Sgn.UnsignedSgn &= 0x00000003;
3962 L4_MABX_B.SFunction1_o20_f = ((real_T) CAN_Sgn.UnsignedSgn);
3963 }
3964 }
3965 } else {
3966 /* set RX status to 0 because no new message has arrived */
3967 L4_MABX_B.SFunction1_o21_p = 0.0;
3968 }
3969 }
3970 }
3971
3972 /* End of Constant: '<S416>/Constant' */
3973 /* End of Outputs for SubSystem: '<S493>/CCVS1_31' */
3974
3975 /* Outputs for Enabled SubSystem: '<S504>/EBC2_0B1' incorporates:
3976 * EnablePort: '<S505>/Enable'
3977 */
3978 /* Constant: '<S421>/Enable_RX_EBC2_0B' */
3979 if (L4_MABX_P.Enable_RX_EBC2_0B_Value) {
3980 /* S-Function (rti_commonblock): '<S505>/S-Function1' */
3981 /* This comment workarounds a code generation problem */
3982
3983 /* dSPACE RTICAN RX Message Block: "EBC2_0B" Id:419348235 */
3984 {
3985 UInt32 *CAN_Msg;
3986 static dsfloat time_old = 0.0;
3987
3988 /* Read status and timestamp info (previous message) */
3989 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEBF0B].timestamp !=
3990 time_old) {
3991 /* ... save timestamp info for the calculation of the RX status
3992 during the consecutive sample hit*/
3993 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEBF0B].
3994 timestamp;
3995
3996 /* ... set the processed flag to one */
3997 L4_MABX_B.SFunction1_o8_l = 1.0;
3998 L4_MABX_B.SFunction1_o9_p = (real_T)
3999 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEBF0B].timestamp;
4000 L4_MABX_B.SFunction1_o10_p = (real_T)
4001 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEBF0B].deltatime;
4002 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEBF0B].data;
4003
4004 /* Decode CAN message */
4005 {
4006 {
4007 rtican_Signal_t CAN_Sgn;
4008
4009 /* ...... "FrontAxleSpeed" (0|16, standard signal, unsigned int, little endian) */
4010 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4011 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
4012 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4013 L4_MABX_B.SFunction1_o1_c4 = 0.00390625 * ( ((real_T)
4014 CAN_Sgn.UnsignedSgn) );
4015
4016 /* ...... "RelativeSpeedFrontAxleLeftWheel" (16|8, standard signal, unsigned int, little endian) */
4017 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4018 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4019 L4_MABX_B.SFunction1_o2_p3 = -7.8125 + ( 0.0625 * ( ((real_T)
4020 CAN_Sgn.UnsignedSgn) ) );
4021
4022 /* ...... "RlativeSpeedFrontAxleRightWheel" (24|8, standard signal, unsigned int, little endian) */
4023 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4024 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4025 L4_MABX_B.SFunction1_o3_id = -7.8125 + ( 0.0625 * ( ((real_T)
4026 CAN_Sgn.UnsignedSgn) ) );
4027
4028 /* ...... "RelativeSpeedRearAxle1LeftWheel" (32|8, standard signal, unsigned int, little endian) */
4029 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4030 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4031 L4_MABX_B.SFunction1_o4_ln = -7.8125 + ( 0.0625 * ( ((real_T)
4032 CAN_Sgn.UnsignedSgn) ) );
4033
4034 /* ...... "RlativeSpeedRearAxle1RightWheel" (40|8, standard signal, unsigned int, little endian) */
4035 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4036 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4037 L4_MABX_B.SFunction1_o5_pl = -7.8125 + ( 0.0625 * ( ((real_T)
4038 CAN_Sgn.UnsignedSgn) ) );
4039
4040 /* ...... "RelativeSpeedRearAxle2LeftWheel" (48|8, standard signal, unsigned int, little endian) */
4041 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4042 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4043 L4_MABX_B.SFunction1_o6_au = -7.8125 + ( 0.0625 * ( ((real_T)
4044 CAN_Sgn.UnsignedSgn) ) );
4045
4046 /* ...... "RlativeSpeedRearAxle2RightWheel" (56|8, standard signal, unsigned int, little endian) */
4047 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4048 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4049 L4_MABX_B.SFunction1_o7_g = -7.8125 + ( 0.0625 * ( ((real_T)
4050 CAN_Sgn.UnsignedSgn) ) );
4051 }
4052 }
4053 } else {
4054 /* set RX status to 0 because no new message has arrived */
4055 L4_MABX_B.SFunction1_o8_l = 0.0;
4056 }
4057 }
4058 }
4059
4060 /* End of Constant: '<S421>/Enable_RX_EBC2_0B' */
4061 /* End of Outputs for SubSystem: '<S504>/EBC2_0B1' */
4062
4063 /* Outputs for Enabled SubSystem: '<S562>/HRW_0B' incorporates:
4064 * EnablePort: '<S563>/Enable'
4065 */
4066 /* Constant: '<S428>/Enable_HRW_RX_0B' */
4067 if (L4_MABX_P.Enable_HRW_RX_0B_Value) {
4068 /* S-Function (rti_commonblock): '<S563>/S-Function1' */
4069 /* This comment workarounds a code generation problem */
4070
4071 /* dSPACE RTICAN RX Message Block: "HRW_0B" Id:150892043 */
4072 {
4073 UInt32 *CAN_Msg;
4074 static dsfloat time_old = 0.0;
4075
4076 /* Read status and timestamp info (previous message) */
4077 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x8FE6E0B].timestamp !=
4078 time_old) {
4079 /* ... save timestamp info for the calculation of the RX status
4080 during the consecutive sample hit*/
4081 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x8FE6E0B].
4082 timestamp;
4083
4084 /* ... set the processed flag to one */
4085 L4_MABX_B.SFunction1_o5_hp = 1.0;
4086 L4_MABX_B.SFunction1_o6_l4 = (real_T)
4087 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x8FE6E0B].timestamp;
4088 L4_MABX_B.SFunction1_o7_lc = (real_T)
4089 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x8FE6E0B].deltatime;
4090 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x8FE6E0B].data;
4091
4092 /* Decode CAN message */
4093 {
4094 {
4095 rtican_Signal_t CAN_Sgn;
4096
4097 /* ...... "FrontAxleLeftWheelSpeed" (0|16, standard signal, unsigned int, little endian) */
4098 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4099 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
4100 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4101 L4_MABX_B.SFunction1_o1_gh = 0.00390625 * ( ((real_T)
4102 CAN_Sgn.UnsignedSgn) );
4103
4104 /* ...... "FrontAxleRightWheelSpeed" (16|16, standard signal, unsigned int, little endian) */
4105 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4106 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
4107 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4108 L4_MABX_B.SFunction1_o2_k5 = 0.00390625 * ( ((real_T)
4109 CAN_Sgn.UnsignedSgn) );
4110
4111 /* ...... "RearAxleLeftWheelSpeed" (32|16, standard signal, unsigned int, little endian) */
4112 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4113 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
4114 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4115 L4_MABX_B.SFunction1_o3_n1d = 0.00390625 * ( ((real_T)
4116 CAN_Sgn.UnsignedSgn) );
4117
4118 /* ...... "RearAxleRightWheelSpeed" (48|16, standard signal, unsigned int, little endian) */
4119 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4120 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[7];
4121 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4122 L4_MABX_B.SFunction1_o4_gd = 0.00390625 * ( ((real_T)
4123 CAN_Sgn.UnsignedSgn) );
4124 }
4125 }
4126 } else {
4127 /* set RX status to 0 because no new message has arrived */
4128 L4_MABX_B.SFunction1_o5_hp = 0.0;
4129 }
4130 }
4131 }
4132
4133 /* End of Constant: '<S428>/Enable_HRW_RX_0B' */
4134 /* End of Outputs for SubSystem: '<S562>/HRW_0B' */
4135
4136 /* Outputs for Enabled SubSystem: '<S502>/EBC1_0B' incorporates:
4137 * EnablePort: '<S503>/Enable'
4138 */
4139 /* Constant: '<S420>/Constant1' */
4140 if (L4_MABX_P.Constant1_Value_g0) {
4141 /* S-Function (rti_commonblock): '<S503>/S-Function1' */
4142 /* This comment workarounds a code generation problem */
4143
4144 /* dSPACE RTICAN RX Message Block: "EBC1_0B" Id:418382219 */
4145 {
4146 UInt32 *CAN_Msg;
4147 static dsfloat time_old = 0.0;
4148
4149 /* Read status and timestamp info (previous message) */
4150 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18F0018B].timestamp !=
4151 time_old) {
4152 /* ... save timestamp info for the calculation of the RX status
4153 during the consecutive sample hit*/
4154 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18F0018B].
4155 timestamp;
4156
4157 /* ... set the processed flag to one */
4158 L4_MABX_B.SFunction1_o23_m = 1.0;
4159 L4_MABX_B.SFunction1_o24_i = (real_T)
4160 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18F0018B].timestamp;
4161 L4_MABX_B.SFunction1_o25_k = (real_T)
4162 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18F0018B].deltatime;
4163 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18F0018B].data;
4164
4165 /* Decode CAN message */
4166 {
4167 {
4168 rtican_Signal_t CAN_Sgn;
4169
4170 /* ...... "ASREngCtrlActive" (0|2, standard signal, unsigned int, little endian) */
4171 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4172 CAN_Sgn.UnsignedSgn &= 0x00000003;
4173 L4_MABX_B.SFunction1_o1_bs = ((real_T) CAN_Sgn.UnsignedSgn);
4174
4175 /* ...... "ASRBrakeCtrlActive" (2|2, standard signal, unsigned int, little endian) */
4176 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4177 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4178 CAN_Sgn.UnsignedSgn &= 0x00000003;
4179 L4_MABX_B.SFunction1_o2_m1 = ((real_T) CAN_Sgn.UnsignedSgn);
4180
4181 /* ...... "AntiLockBrakingActive" (4|2, standard signal, unsigned int, little endian) */
4182 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4183 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4184 CAN_Sgn.UnsignedSgn &= 0x00000003;
4185 L4_MABX_B.SFunction1_o3_jx = ((real_T) CAN_Sgn.UnsignedSgn);
4186
4187 /* ...... "EBSBrakeSwitch" (6|2, standard signal, unsigned int, little endian) */
4188 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4189 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4190 CAN_Sgn.UnsignedSgn &= 0x00000003;
4191 L4_MABX_B.SFunction1_o4_kq = ((real_T) CAN_Sgn.UnsignedSgn);
4192
4193 /* ...... "BrakePedalPos" (8|8, standard signal, unsigned int, little endian) */
4194 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
4195 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4196 L4_MABX_B.SFunction1_o5_cn = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
4197
4198 /* ...... "ABSOffroadSwitch" (16|2, standard signal, unsigned int, little endian) */
4199 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4200 CAN_Sgn.UnsignedSgn &= 0x00000003;
4201 L4_MABX_B.SFunction1_o6_m4 = ((real_T) CAN_Sgn.UnsignedSgn);
4202
4203 /* ...... "ASROffroadSwitch" (18|2, standard signal, unsigned int, little endian) */
4204 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4205 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4206 CAN_Sgn.UnsignedSgn &= 0x00000003;
4207 L4_MABX_B.SFunction1_o7_ix = ((real_T) CAN_Sgn.UnsignedSgn);
4208
4209 /* ...... "ASRHillHolderSwitch" (20|2, standard signal, unsigned int, little endian) */
4210 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4211 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4212 CAN_Sgn.UnsignedSgn &= 0x00000003;
4213 L4_MABX_B.SFunction1_o8_jo = ((real_T) CAN_Sgn.UnsignedSgn);
4214
4215 /* ...... "TractionCtrlOverrideSwitch" (22|2, standard signal, unsigned int, little endian) */
4216 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4217 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4218 CAN_Sgn.UnsignedSgn &= 0x00000003;
4219 L4_MABX_B.SFunction1_o9_h = ((real_T) CAN_Sgn.UnsignedSgn);
4220
4221 /* ...... "AccelInterlockSwitch" (24|2, standard signal, unsigned int, little endian) */
4222 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4223 CAN_Sgn.UnsignedSgn &= 0x00000003;
4224 L4_MABX_B.SFunction1_o10_k = ((real_T) CAN_Sgn.UnsignedSgn);
4225
4226 /* ...... "EngDerateSwitch" (26|2, standard signal, unsigned int, little endian) */
4227 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4228 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4229 CAN_Sgn.UnsignedSgn &= 0x00000003;
4230 L4_MABX_B.SFunction1_o11_c = ((real_T) CAN_Sgn.UnsignedSgn);
4231
4232 /* ...... "EngAuxShutdownSwitch" (28|2, standard signal, unsigned int, little endian) */
4233 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4234 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4235 CAN_Sgn.UnsignedSgn &= 0x00000003;
4236 L4_MABX_B.SFunction1_o12_o = ((real_T) CAN_Sgn.UnsignedSgn);
4237
4238 /* ...... "RemoteAccelEnableSwitch" (30|2, standard signal, unsigned int, little endian) */
4239 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4240 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4241 CAN_Sgn.UnsignedSgn &= 0x00000003;
4242 L4_MABX_B.SFunction1_o13_f = ((real_T) CAN_Sgn.UnsignedSgn);
4243
4244 /* ...... "EngRetarderSelection" (32|8, standard signal, unsigned int, little endian) */
4245 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4246 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4247 L4_MABX_B.SFunction1_o14_o = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
4248
4249 /* ...... "ABSFullyOperational" (40|2, standard signal, unsigned int, little endian) */
4250 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4251 CAN_Sgn.UnsignedSgn &= 0x00000003;
4252 L4_MABX_B.SFunction1_o15_g = ((real_T) CAN_Sgn.UnsignedSgn);
4253
4254 /* ...... "EBSRedWarningSignal" (42|2, standard signal, unsigned int, little endian) */
4255 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4256 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4257 CAN_Sgn.UnsignedSgn &= 0x00000003;
4258 L4_MABX_B.SFunction1_o16_j = ((real_T) CAN_Sgn.UnsignedSgn);
4259
4260 /* ...... "ABS_EBSAmberWarningSignal" (44|2, standard signal, unsigned int, little endian) */
4261 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4262 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4263 CAN_Sgn.UnsignedSgn &= 0x00000003;
4264 L4_MABX_B.SFunction1_o17_m = ((real_T) CAN_Sgn.UnsignedSgn);
4265
4266 /* ...... "ATC_ASRInformationSignal" (46|2, standard signal, unsigned int, little endian) */
4267 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4268 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4269 CAN_Sgn.UnsignedSgn &= 0x00000003;
4270 L4_MABX_B.SFunction1_o18_o = ((real_T) CAN_Sgn.UnsignedSgn);
4271
4272 /* ...... "SrcAddrssOfCtrllngDvcFrBrkCntrl" (48|8, standard signal, unsigned int, little endian) */
4273 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4274 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4275 L4_MABX_B.SFunction1_o19_f = ((real_T) CAN_Sgn.UnsignedSgn);
4276
4277 /* ...... "HaltBrakeSwitch" (58|2, standard signal, unsigned int, little endian) */
4278 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4279 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4280 CAN_Sgn.UnsignedSgn &= 0x00000003;
4281 L4_MABX_B.SFunction1_o20_p = ((real_T) CAN_Sgn.UnsignedSgn);
4282
4283 /* ...... "TrailerABSStatus" (60|2, standard signal, unsigned int, little endian) */
4284 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4285 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4286 CAN_Sgn.UnsignedSgn &= 0x00000003;
4287 L4_MABX_B.SFunction1_o21_o = ((real_T) CAN_Sgn.UnsignedSgn);
4288
4289 /* ...... "TrctrMntdTrilerABSWarningSignal" (62|2, standard signal, unsigned int, little endian) */
4290 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4291 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4292 CAN_Sgn.UnsignedSgn &= 0x00000003;
4293 L4_MABX_B.SFunction1_o22_d = ((real_T) CAN_Sgn.UnsignedSgn);
4294 }
4295 }
4296 } else {
4297 /* set RX status to 0 because no new message has arrived */
4298 L4_MABX_B.SFunction1_o23_m = 0.0;
4299 }
4300 }
4301 }
4302
4303 /* End of Constant: '<S420>/Constant1' */
4304 /* End of Outputs for SubSystem: '<S502>/EBC1_0B' */
4305
4306 /* Outputs for Enabled SubSystem: '<S557>/ETC2_031' incorporates:
4307 * EnablePort: '<S558>/Enable'
4308 */
4309 /* Constant: '<S426>/Enable_RX_ETC2_03' */
4310 if (L4_MABX_P.Enable_RX_ETC2_03_Value) {
4311 /* S-Function (rti_commonblock): '<S558>/S-Function1' */
4312 /* This comment workarounds a code generation problem */
4313
4314 /* dSPACE RTICAN RX Message Block: "ETC2_03" Id:418383107 */
4315 {
4316 UInt32 *CAN_Msg;
4317 static dsfloat time_old = 0.0;
4318
4319 /* Read status and timestamp info (previous message) */
4320 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F00503].timestamp !=
4321 time_old) {
4322 /* ... save timestamp info for the calculation of the RX status
4323 during the consecutive sample hit*/
4324 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F00503].
4325 timestamp;
4326
4327 /* ... set the processed flag to one */
4328 L4_MABX_B.SFunction1_o4_lu = 1.0;
4329 L4_MABX_B.SFunction1_o5_kr = (real_T)
4330 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F00503].timestamp;
4331 L4_MABX_B.SFunction1_o6_p = (real_T)
4332 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F00503].deltatime;
4333 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F00503].data;
4334
4335 /* Decode CAN message */
4336 {
4337 {
4338 rtican_Signal_t CAN_Sgn;
4339
4340 /* ...... "SPN524_TransSelectedGear" (0|8, standard signal, unsigned int, little endian) */
4341 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4342 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4343 L4_MABX_B.SFunction1_o1_gk = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4344 );
4345
4346 /* ...... "SPN526_TransActualGearRatio" (8|16, standard signal, unsigned int, little endian) */
4347 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
4348 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
4349 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4350 L4_MABX_B.SFunction1_o2_kj = 0.001 * ( ((real_T) CAN_Sgn.UnsignedSgn)
4351 );
4352
4353 /* ...... "SPN523_TransCurrentGear" (24|8, standard signal, unsigned int, little endian) */
4354 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4355 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4356 L4_MABX_B.SFunction1_o3_b = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn) );
4357 }
4358 }
4359 } else {
4360 /* set RX status to 0 because no new message has arrived */
4361 L4_MABX_B.SFunction1_o4_lu = 0.0;
4362 }
4363 }
4364 }
4365
4366 /* End of Constant: '<S426>/Enable_RX_ETC2_03' */
4367 /* End of Outputs for SubSystem: '<S557>/ETC2_031' */
4368
4369 /* DataTypeConversion: '<S557>/Data Type Conversion1' */
4370 L4_MABX_B.SPN524_TransSelectedGear = L4_MABX_B.SFunction1_o1_gk;
4371
4372 /* DataTypeConversion: '<S557>/Data Type Conversion2' */
4373 L4_MABX_B.SPN523_TransCurrentGear = L4_MABX_B.SFunction1_o3_b;
4374
4375 /* DataTypeConversion: '<S557>/Data Type Conversion3' */
4376 L4_MABX_B.SPN526_TransActualGearRatio = L4_MABX_B.SFunction1_o2_kj;
4377
4378 /* Outputs for Enabled SubSystem: '<S551>/EEC1_001' incorporates:
4379 * EnablePort: '<S552>/Enable'
4380 */
4381 /* Constant: '<S423>/Enable_RX_EEC1_00' */
4382 if (L4_MABX_P.Enable_RX_EEC1_00_Value) {
4383 /* S-Function (rti_commonblock): '<S552>/S-Function1' */
4384 /* This comment workarounds a code generation problem */
4385
4386 /* dSPACE RTICAN RX Message Block: "EEC1_00" Id:217056256 */
4387 {
4388 UInt32 *CAN_Msg;
4389 static dsfloat time_old = 0.0;
4390
4391 /* Read status and timestamp info (previous message) */
4392 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF00400].timestamp !=
4393 time_old) {
4394 /* ... save timestamp info for the calculation of the RX status
4395 during the consecutive sample hit*/
4396 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF00400].
4397 timestamp;
4398
4399 /* ... set the processed flag to one */
4400 L4_MABX_B.SFunction1_o9_eh = 1.0;
4401 L4_MABX_B.SFunction1_o10_bm = (real_T)
4402 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF00400].timestamp;
4403 L4_MABX_B.SFunction1_o11_ai = (real_T)
4404 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF00400].deltatime;
4405 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF00400].data;
4406
4407 /* Decode CAN message */
4408 {
4409 {
4410 rtican_Signal_t CAN_Sgn;
4411
4412 /* ...... "EngTorqueMode" (0|4, standard signal, unsigned int, little endian) */
4413 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4414 CAN_Sgn.UnsignedSgn &= 0x0000000F;
4415 L4_MABX_B.SFunction1_o1_kp = ((real_T) CAN_Sgn.UnsignedSgn);
4416
4417 /* ...... "ActlEngPrcntTrqueHighResolution" (4|4, standard signal, unsigned int, little endian) */
4418 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4419 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4420 CAN_Sgn.UnsignedSgn &= 0x0000000F;
4421 L4_MABX_B.SFunction1_o2_pk = 0.125 * ( ((real_T) CAN_Sgn.UnsignedSgn)
4422 );
4423
4424 /* ...... "DriversDemandEngPercentTorque" (8|8, standard signal, unsigned int, little endian) */
4425 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
4426 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4427 L4_MABX_B.SFunction1_o3_el = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4428 );
4429
4430 /* ...... "ActualEngPercentTorque" (16|8, standard signal, unsigned int, little endian) */
4431 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4432 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4433 L4_MABX_B.SFunction1_o4_e1 = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4434 );
4435
4436 /* ...... "EngSpeed" (24|16, standard signal, unsigned int, little endian) */
4437 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4438 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
4439 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4440 L4_MABX_B.SFunction1_o5_aw = 0.125 * ( ((real_T) CAN_Sgn.UnsignedSgn)
4441 );
4442
4443 /* ...... "SrcAddrssOfCtrllngDvcFrEngCntrl" (40|8, standard signal, unsigned int, little endian) */
4444 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4445 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4446 L4_MABX_B.SFunction1_o6_j = ((real_T) CAN_Sgn.UnsignedSgn);
4447
4448 /* ...... "EngStarterMode" (48|4, standard signal, unsigned int, little endian) */
4449 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4450 CAN_Sgn.UnsignedSgn &= 0x0000000F;
4451 L4_MABX_B.SFunction1_o7_a0 = ((real_T) CAN_Sgn.UnsignedSgn);
4452
4453 /* ...... "EngDemandPercentTorque" (56|8, standard signal, unsigned int, little endian) */
4454 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4455 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4456 L4_MABX_B.SFunction1_o8_e = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn) );
4457 }
4458 }
4459 } else {
4460 /* set RX status to 0 because no new message has arrived */
4461 L4_MABX_B.SFunction1_o9_eh = 0.0;
4462 }
4463 }
4464 }
4465
4466 /* End of Constant: '<S423>/Enable_RX_EEC1_00' */
4467 /* End of Outputs for SubSystem: '<S551>/EEC1_001' */
4468
4469 /* Outputs for Enabled SubSystem: '<S555>/EEC3_001' incorporates:
4470 * EnablePort: '<S556>/Enable'
4471 */
4472 /* Constant: '<S425>/Enable_RX_EEC3_00' */
4473 if (L4_MABX_P.Enable_RX_EEC3_00_Value) {
4474 /* S-Function (rti_commonblock): '<S556>/S-Function1' */
4475 /* This comment workarounds a code generation problem */
4476
4477 /* dSPACE RTICAN RX Message Block: "EEC3_00" Id:419356416 */
4478 {
4479 UInt32 *CAN_Msg;
4480 static dsfloat time_old = 0.0;
4481
4482 /* Read status and timestamp info (previous message) */
4483 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEDF00].timestamp !=
4484 time_old) {
4485 /* ... save timestamp info for the calculation of the RX status
4486 during the consecutive sample hit*/
4487 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEDF00].
4488 timestamp;
4489
4490 /* ... set the processed flag to one */
4491 L4_MABX_B.SFunction1_o3_lh = 1.0;
4492 L4_MABX_B.SFunction1_o4_im = (real_T)
4493 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEDF00].timestamp;
4494 L4_MABX_B.SFunction1_o5_fy = (real_T)
4495 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEDF00].deltatime;
4496 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEDF00].data;
4497
4498 /* Decode CAN message */
4499 {
4500 {
4501 rtican_Signal_t CAN_Sgn;
4502
4503 /* ...... "SPN514_NominalFrictionPercentTorque" (0|8, standard signal, unsigned int, little endian) */
4504 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4505 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4506 L4_MABX_B.SFunction1_o1_ia = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4507 );
4508
4509 /* ...... "SPN2978_EstEngParasiticLossesPercentTorque" (32|8, standard signal, unsigned int, little endian) */
4510 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4511 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4512 L4_MABX_B.SFunction1_o2_gg = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4513 );
4514 }
4515 }
4516 } else {
4517 /* set RX status to 0 because no new message has arrived */
4518 L4_MABX_B.SFunction1_o3_lh = 0.0;
4519 }
4520 }
4521 }
4522
4523 /* End of Constant: '<S425>/Enable_RX_EEC3_00' */
4524 /* End of Outputs for SubSystem: '<S555>/EEC3_001' */
4525
4526 /* DataTypeConversion: '<S555>/Data Type Conversion2' */
4527 L4_MABX_B.SPN514_NominalFrictionPercentTo = L4_MABX_B.SFunction1_o1_ia;
4528
4529 /* DataTypeConversion: '<S555>/Data Type Conversion1' */
4530 L4_MABX_B.SPN2978_EstEngParasiticLossesPe = L4_MABX_B.SFunction1_o2_gg;
4531
4532 /* Outputs for Enabled SubSystem: '<S498>/CVW_0B1' incorporates:
4533 * EnablePort: '<S499>/Enable'
4534 */
4535 /* Constant: '<S418>/Constant' */
4536 if (L4_MABX_P.Constant_Value_dz) {
4537 /* S-Function (rti_commonblock): '<S499>/S-Function1' */
4538 /* This comment workarounds a code generation problem */
4539
4540 /* dSPACE RTICAN RX Message Block: "CVW_0B" Id:419328011 */
4541 {
4542 UInt32 *CAN_Msg;
4543 static dsfloat time_old = 0.0;
4544
4545 /* Read status and timestamp info (previous message) */
4546 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE700B].timestamp !=
4547 time_old) {
4548 /* ... save timestamp info for the calculation of the RX status
4549 during the consecutive sample hit*/
4550 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE700B].
4551 timestamp;
4552
4553 /* ... set the processed flag to one */
4554 L4_MABX_B.SFunction1_o2_dh = 1.0;
4555 L4_MABX_B.SFunction1_o3_o5 = (real_T)
4556 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE700B].timestamp;
4557 L4_MABX_B.SFunction1_o4_er = (real_T)
4558 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE700B].deltatime;
4559 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE700B].data;
4560
4561 /* Decode CAN message */
4562 {
4563 {
4564 rtican_Signal_t CAN_Sgn;
4565
4566 /* ...... "SPN1760_GrossCombinationVehicleWeight" (16|16, standard signal, unsigned int, little endian) */
4567 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4568 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
4569 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4570 L4_MABX_B.SFunction1_o1_it = 10 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
4571 }
4572 }
4573 } else {
4574 /* set RX status to 0 because no new message has arrived */
4575 L4_MABX_B.SFunction1_o2_dh = 0.0;
4576 }
4577 }
4578 }
4579
4580 /* End of Constant: '<S418>/Constant' */
4581 /* End of Outputs for SubSystem: '<S498>/CVW_0B1' */
4582
4583 /* DataTypeConversion: '<S498>/Data Type Conversion1' */
4584 L4_MABX_B.SPN1760_GrossCombinationVehicle = L4_MABX_B.SFunction1_o1_it;
4585
4586 /* Outputs for Enabled SubSystem: '<S479>/ACC1_2A_' incorporates:
4587 * EnablePort: '<S480>/Enable'
4588 */
4589 /* Constant: '<S409>/Constant' */
4590 if (L4_MABX_P.Constant_Value_cy) {
4591 /* S-Function (rti_commonblock): '<S480>/S-Function1' */
4592 /* This comment workarounds a code generation problem */
4593
4594 /* dSPACE RTICAN RX Message Block: "ACC1_2A" Id:285110058 */
4595 {
4596 UInt32 *CAN_Msg;
4597 static dsfloat time_old = 0.0;
4598
4599 /* Read status and timestamp info (previous message) */
4600 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x10FE6F2A].timestamp !=
4601 time_old) {
4602 /* ... save timestamp info for the calculation of the RX status
4603 during the consecutive sample hit*/
4604 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x10FE6F2A].
4605 timestamp;
4606
4607 /* ... set the processed flag to one */
4608 L4_MABX_B.SFunction1_o11_p = 1.0;
4609 L4_MABX_B.SFunction1_o12_db = (real_T)
4610 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x10FE6F2A].timestamp;
4611 L4_MABX_B.SFunction1_o13_k = (real_T)
4612 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x10FE6F2A].deltatime;
4613 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x10FE6F2A].data;
4614
4615 /* Decode CAN message */
4616 {
4617 {
4618 rtican_Signal_t CAN_Sgn;
4619
4620 /* ...... "SpeedOfForwardVehicle" (0|8, standard signal, unsigned int, little endian) */
4621 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4622 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4623 L4_MABX_B.SFunction1_o1_p1 = ((real_T) CAN_Sgn.UnsignedSgn);
4624
4625 /* ...... "DistanceToForwardVehicle" (8|8, standard signal, unsigned int, little endian) */
4626 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
4627 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4628 L4_MABX_B.SFunction1_o2_jv = ((real_T) CAN_Sgn.UnsignedSgn);
4629
4630 /* ...... "AdaptiveCruiseCtrlSetSpeed" (16|8, standard signal, unsigned int, little endian) */
4631 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4632 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4633 L4_MABX_B.SFunction1_o3_he = ((real_T) CAN_Sgn.UnsignedSgn);
4634
4635 /* ...... "AdaptiveCruiseCtrlMode" (24|3, standard signal, unsigned int, little endian) */
4636 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4637 CAN_Sgn.UnsignedSgn &= 0x00000007;
4638 L4_MABX_B.SFunction1_o4_ir = ((real_T) CAN_Sgn.UnsignedSgn);
4639
4640 /* ...... "AdptveCruiseCtrlSetDistanceMode" (27|3, standard signal, unsigned int, little endian) */
4641 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4642 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 3;
4643 CAN_Sgn.UnsignedSgn &= 0x00000007;
4644 L4_MABX_B.SFunction1_o5_b2 = ((real_T) CAN_Sgn.UnsignedSgn);
4645
4646 /* ...... "RoadCurvature" (32|16, standard signal, unsigned int, little endian) */
4647 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4648 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
4649 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4650 L4_MABX_B.SFunction1_o6_cb = -250 + ( 0.0078125 * ( ((real_T)
4651 CAN_Sgn.UnsignedSgn) ) );
4652
4653 /* ...... "ACCTargetDetected" (48|2, standard signal, unsigned int, little endian) */
4654 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4655 CAN_Sgn.UnsignedSgn &= 0x00000003;
4656 L4_MABX_B.SFunction1_o7_bf = ((real_T) CAN_Sgn.UnsignedSgn);
4657
4658 /* ...... "ACCSystemShutoffWarning" (50|2, standard signal, unsigned int, little endian) */
4659 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4660 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4661 CAN_Sgn.UnsignedSgn &= 0x00000003;
4662 L4_MABX_B.SFunction1_o8_hg = ((real_T) CAN_Sgn.UnsignedSgn);
4663
4664 /* ...... "ACCDistanceAlertSignal" (52|2, standard signal, unsigned int, little endian) */
4665 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4666 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4667 CAN_Sgn.UnsignedSgn &= 0x00000003;
4668 L4_MABX_B.SFunction1_o9_g = ((real_T) CAN_Sgn.UnsignedSgn);
4669
4670 /* ...... "ForwardCollisionWarning" (54|2, standard signal, unsigned int, little endian) */
4671 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4672 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4673 CAN_Sgn.UnsignedSgn &= 0x00000003;
4674 L4_MABX_B.SFunction1_o10_ih = ((real_T) CAN_Sgn.UnsignedSgn);
4675 }
4676 }
4677 } else {
4678 /* set RX status to 0 because no new message has arrived */
4679 L4_MABX_B.SFunction1_o11_p = 0.0;
4680 }
4681 }
4682 }
4683
4684 /* End of Constant: '<S409>/Constant' */
4685 /* End of Outputs for SubSystem: '<S479>/ACC1_2A_' */
4686
4687 /* DataTypeConversion: '<S479>/Data Type Conversion12' */
4688 L4_MABX_B.ACCDistanceAlertSignal = L4_MABX_B.SFunction1_o9_g;
4689
4690 /* DataTypeConversion: '<S479>/Data Type Conversion13' */
4691 L4_MABX_B.ForwardCollisionWarning = L4_MABX_B.SFunction1_o10_ih;
4692
4693 /* RelationalOperator: '<S464>/Operator' incorporates:
4694 * Constant: '<S407>/Constant'
4695 * Constant: '<S462>/Constant'
4696 */
4697 L4_MABX_B.Operator_des = (L4_MABX_P.Constant_Value_l ==
4698 L4_MABX_P.Constant_Value_ch);
4699
4700 /* Outputs for Enabled SubSystem: '<S461>/CAN_TYPE1_RX_M1_C1' incorporates:
4701 * EnablePort: '<S463>/Enable'
4702 */
4703 if (L4_MABX_B.Operator_des) {
4704 /* S-Function (rti_commonblock): '<S463>/S-Function1' */
4705 /* This comment workarounds a code generation problem */
4706
4707 /* dSPACE RTICAN RX Message Block: "TPCM_FF_00" Id:485293824 */
4708 {
4709 UInt32 *CAN_Msg;
4710 static dsfloat time_old = 0.0;
4711
4712 /* Read status and timestamp info (previous message) */
4713 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CECFF00].timestamp !=
4714 time_old) {
4715 /* ... save timestamp info for the calculation of the RX status
4716 during the consecutive sample hit*/
4717 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CECFF00].
4718 timestamp;
4719
4720 /* ... set the processed flag to one */
4721 L4_MABX_B.SFunction1_o9_ph = 1.0;
4722 L4_MABX_B.SFunction1_o10_kx = (real_T)
4723 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CECFF00].timestamp;
4724 L4_MABX_B.SFunction1_o11_jf = (real_T)
4725 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CECFF00].deltatime;
4726 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CECFF00].data;
4727
4728 /* Decode CAN message */
4729 {
4730 {
4731 rtican_Signal_t CAN_Sgn;
4732
4733 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
4734 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4735 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4736 L4_MABX_B.SFunction1_o1_ax = ((real_T) CAN_Sgn.UnsignedSgn);
4737
4738 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
4739 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
4740 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4741 L4_MABX_B.SFunction1_o2_ln = ((real_T) CAN_Sgn.UnsignedSgn);
4742
4743 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
4744 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4745 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4746 L4_MABX_B.SFunction1_o3_a2 = ((real_T) CAN_Sgn.UnsignedSgn);
4747
4748 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
4749 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4750 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4751 L4_MABX_B.SFunction1_o4_he = ((real_T) CAN_Sgn.UnsignedSgn);
4752
4753 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
4754 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4755 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4756 L4_MABX_B.SFunction1_o5_cb = ((real_T) CAN_Sgn.UnsignedSgn);
4757
4758 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
4759 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4760 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4761 L4_MABX_B.SFunction1_o6_k = ((real_T) CAN_Sgn.UnsignedSgn);
4762
4763 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
4764 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4765 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4766 L4_MABX_B.SFunction1_o7_j0 = ((real_T) CAN_Sgn.UnsignedSgn);
4767
4768 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
4769 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4770 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4771 L4_MABX_B.SFunction1_o8_kq = ((real_T) CAN_Sgn.UnsignedSgn);
4772 }
4773 }
4774 } else {
4775 /* set RX status to 0 because no new message has arrived */
4776 L4_MABX_B.SFunction1_o9_ph = 0.0;
4777 }
4778 }
4779 }
4780
4781 /* End of Outputs for SubSystem: '<S461>/CAN_TYPE1_RX_M1_C1' */
4782
4783 /* DataTypeConversion: '<S461>/Data Type Conversion' */
4784 PositionFinalLimited = L4_MABX_B.SFunction1_o1_ax;
4785 if (PositionFinalLimited < 256.0) {
4786 if (PositionFinalLimited >= 0.0) {
4787 starting_index = (uint8_T)PositionFinalLimited;
4788 } else {
4789 starting_index = 0U;
4790 }
4791 } else {
4792 starting_index = MAX_uint8_T;
4793 }
4794
4795 L4_MABX_B.DataTypeConversion_ag = starting_index;
4796
4797 /* End of DataTypeConversion: '<S461>/Data Type Conversion' */
4798
4799 /* DataTypeConversion: '<S461>/Data Type Conversion1' */
4800 PositionFinalLimited = L4_MABX_B.SFunction1_o2_ln;
4801 if (PositionFinalLimited < 256.0) {
4802 if (PositionFinalLimited >= 0.0) {
4803 starting_index = (uint8_T)PositionFinalLimited;
4804 } else {
4805 starting_index = 0U;
4806 }
4807 } else {
4808 starting_index = MAX_uint8_T;
4809 }
4810
4811 L4_MABX_B.DataTypeConversion1_m0 = starting_index;
4812
4813 /* End of DataTypeConversion: '<S461>/Data Type Conversion1' */
4814
4815 /* DataTypeConversion: '<S461>/Data Type Conversion2' */
4816 PositionFinalLimited = L4_MABX_B.SFunction1_o3_a2;
4817 if (PositionFinalLimited < 256.0) {
4818 if (PositionFinalLimited >= 0.0) {
4819 starting_index = (uint8_T)PositionFinalLimited;
4820 } else {
4821 starting_index = 0U;
4822 }
4823 } else {
4824 starting_index = MAX_uint8_T;
4825 }
4826
4827 L4_MABX_B.DataTypeConversion2_mz = starting_index;
4828
4829 /* End of DataTypeConversion: '<S461>/Data Type Conversion2' */
4830
4831 /* DataTypeConversion: '<S461>/Data Type Conversion3' */
4832 PositionFinalLimited = L4_MABX_B.SFunction1_o4_he;
4833 if (PositionFinalLimited < 256.0) {
4834 if (PositionFinalLimited >= 0.0) {
4835 starting_index = (uint8_T)PositionFinalLimited;
4836 } else {
4837 starting_index = 0U;
4838 }
4839 } else {
4840 starting_index = MAX_uint8_T;
4841 }
4842
4843 L4_MABX_B.DataTypeConversion3_bc = starting_index;
4844
4845 /* End of DataTypeConversion: '<S461>/Data Type Conversion3' */
4846
4847 /* DataTypeConversion: '<S461>/Data Type Conversion4' */
4848 PositionFinalLimited = L4_MABX_B.SFunction1_o5_cb;
4849 if (PositionFinalLimited < 256.0) {
4850 if (PositionFinalLimited >= 0.0) {
4851 starting_index = (uint8_T)PositionFinalLimited;
4852 } else {
4853 starting_index = 0U;
4854 }
4855 } else {
4856 starting_index = MAX_uint8_T;
4857 }
4858
4859 L4_MABX_B.DataTypeConversion4_bq = starting_index;
4860
4861 /* End of DataTypeConversion: '<S461>/Data Type Conversion4' */
4862
4863 /* DataTypeConversion: '<S461>/Data Type Conversion5' */
4864 PositionFinalLimited = L4_MABX_B.SFunction1_o6_k;
4865 if (PositionFinalLimited < 256.0) {
4866 if (PositionFinalLimited >= 0.0) {
4867 starting_index = (uint8_T)PositionFinalLimited;
4868 } else {
4869 starting_index = 0U;
4870 }
4871 } else {
4872 starting_index = MAX_uint8_T;
4873 }
4874
4875 L4_MABX_B.DataTypeConversion5_g = starting_index;
4876
4877 /* End of DataTypeConversion: '<S461>/Data Type Conversion5' */
4878
4879 /* DataTypeConversion: '<S461>/Data Type Conversion6' */
4880 PositionFinalLimited = L4_MABX_B.SFunction1_o7_j0;
4881 if (PositionFinalLimited < 256.0) {
4882 if (PositionFinalLimited >= 0.0) {
4883 starting_index = (uint8_T)PositionFinalLimited;
4884 } else {
4885 starting_index = 0U;
4886 }
4887 } else {
4888 starting_index = MAX_uint8_T;
4889 }
4890
4891 L4_MABX_B.DataTypeConversion6_pz = starting_index;
4892
4893 /* End of DataTypeConversion: '<S461>/Data Type Conversion6' */
4894
4895 /* DataTypeConversion: '<S461>/Data Type Conversion7' */
4896 PositionFinalLimited = L4_MABX_B.SFunction1_o8_kq;
4897 if (PositionFinalLimited < 256.0) {
4898 if (PositionFinalLimited >= 0.0) {
4899 starting_index = (uint8_T)PositionFinalLimited;
4900 } else {
4901 starting_index = 0U;
4902 }
4903 } else {
4904 starting_index = MAX_uint8_T;
4905 }
4906
4907 L4_MABX_B.DataTypeConversion7_ej = starting_index;
4908
4909 /* End of DataTypeConversion: '<S461>/Data Type Conversion7' */
4910
4911 /* MultiPortSwitch: '<S407>/Multiport_Switch' */
4912 L4_MABX_B.RawData[0] = L4_MABX_B.DataTypeConversion_ag;
4913 L4_MABX_B.RawData[1] = L4_MABX_B.DataTypeConversion1_m0;
4914 L4_MABX_B.RawData[2] = L4_MABX_B.DataTypeConversion2_mz;
4915 L4_MABX_B.RawData[3] = L4_MABX_B.DataTypeConversion3_bc;
4916 L4_MABX_B.RawData[4] = L4_MABX_B.DataTypeConversion4_bq;
4917 L4_MABX_B.RawData[5] = L4_MABX_B.DataTypeConversion5_g;
4918 L4_MABX_B.RawData[6] = L4_MABX_B.DataTypeConversion6_pz;
4919 L4_MABX_B.RawData[7] = L4_MABX_B.DataTypeConversion7_ej;
4920
4921 /* DataTypeConversion: '<S455>/Data Type Conversion' */
4922 for (i = 0; i < 8; i++) {
4923 L4_MABX_B.DataTypeConversion_cn[i] = L4_MABX_B.RawData[i];
4924 }
4925
4926 /* End of DataTypeConversion: '<S455>/Data Type Conversion' */
4927
4928 /* RelationalOperator: '<S670>/Operator' incorporates:
4929 * Constant: '<S455>/Constant3'
4930 */
4931 L4_MABX_B.Operator_md = (L4_MABX_B.DataTypeConversion_cn[0] ==
4932 L4_MABX_P.Constant3_Value_ji);
4933
4934 /* Outputs for Enabled SubSystem: '<S455>/Decode_TPCM_BAM' incorporates:
4935 * EnablePort: '<S662>/Enable'
4936 */
4937 if (L4_MABX_B.Operator_md) {
4938 /* SignalConversion: '<S673>/Signal Conversion' */
4939 L4_MABX_B.SPN2556_ControlByte_o = L4_MABX_B.DataTypeConversion_cn[0];
4940
4941 /* DataTypeConversion: '<S674>/Data Type Conversion' */
4942 L4_MABX_B.DataTypeConversion_ig = L4_MABX_B.DataTypeConversion_cn[1];
4943
4944 /* DataTypeConversion: '<S674>/Data Type Conversion1' */
4945 L4_MABX_B.DataTypeConversion1_mv = L4_MABX_B.DataTypeConversion_cn[2];
4946
4947 /* ArithShift: '<S674>/Shift Arithmetic2' */
4948 L4_MABX_B.ShiftArithmetic2_j = (uint16_T)(L4_MABX_B.DataTypeConversion1_mv <<
4949 8);
4950
4951 /* S-Function (sfix_bitop): '<S677>/Operator' */
4952 L4_MABX_B.Operator_lw = (uint16_T)(L4_MABX_B.DataTypeConversion_ig |
4953 L4_MABX_B.ShiftArithmetic2_j);
4954
4955 /* DataTypeConversion: '<S677>/DataType' */
4956 L4_MABX_B.DataType_g5 = L4_MABX_B.Operator_lw;
4957
4958 /* SignalConversion: '<S675>/Signal Conversion' */
4959 L4_MABX_B.SPN2568_TotalNumberOfPackets = L4_MABX_B.DataTypeConversion_cn[3];
4960
4961 /* DataTypeConversion: '<S676>/Data Type Conversion' */
4962 L4_MABX_B.DataTypeConversion_kd = L4_MABX_B.DataTypeConversion_cn[5];
4963
4964 /* DataTypeConversion: '<S676>/Data Type Conversion1' */
4965 L4_MABX_B.DataTypeConversion1_c4 = L4_MABX_B.DataTypeConversion_cn[6];
4966
4967 /* DataTypeConversion: '<S676>/Data Type Conversion2' */
4968 L4_MABX_B.DataTypeConversion2_gu = L4_MABX_B.DataTypeConversion_cn[7];
4969
4970 /* ArithShift: '<S676>/Shift Arithmetic1' */
4971 L4_MABX_B.ShiftArithmetic1_d = L4_MABX_B.DataTypeConversion1_c4 << 8;
4972
4973 /* ArithShift: '<S676>/Shift Arithmetic2' */
4974 L4_MABX_B.ShiftArithmetic2_b = L4_MABX_B.DataTypeConversion2_gu << 16;
4975
4976 /* S-Function (sfix_bitop): '<S678>/Operator' */
4977 L4_MABX_B.Operator_es = L4_MABX_B.DataTypeConversion_kd |
4978 L4_MABX_B.ShiftArithmetic1_d | L4_MABX_B.ShiftArithmetic2_b;
4979
4980 /* DataTypeConversion: '<S678>/DataType' */
4981 L4_MABX_B.DataType_oa = L4_MABX_B.Operator_es;
4982 }
4983
4984 /* End of Outputs for SubSystem: '<S455>/Decode_TPCM_BAM' */
4985
4986 /* RelationalOperator: '<S473>/Operator' incorporates:
4987 * Constant: '<S408>/Constant'
4988 * Constant: '<S471>/Constant'
4989 */
4990 L4_MABX_B.Operator_o3 = (L4_MABX_P.Constant_Value_jc ==
4991 L4_MABX_P.Constant_Value_my);
4992
4993 /* Outputs for Enabled SubSystem: '<S470>/CAN_TYPE1_RX_M1_C1' incorporates:
4994 * EnablePort: '<S472>/Enable'
4995 */
4996 if (L4_MABX_B.Operator_o3) {
4997 /* S-Function (rti_commonblock): '<S472>/S-Function1' */
4998 /* This comment workarounds a code generation problem */
4999
5000 /* dSPACE RTICAN RX Message Block: "TPDT_FF_00" Id:485228288 */
5001 {
5002 UInt32 *CAN_Msg;
5003 static dsfloat time_old = 0.0;
5004
5005 /* Read status and timestamp info (previous message) */
5006 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CEBFF00].timestamp !=
5007 time_old) {
5008 /* ... save timestamp info for the calculation of the RX status
5009 during the consecutive sample hit*/
5010 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CEBFF00].
5011 timestamp;
5012
5013 /* ... set the processed flag to one */
5014 L4_MABX_B.SFunction1_o9_j = 1.0;
5015 L4_MABX_B.SFunction1_o10_b4 = (real_T)
5016 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CEBFF00].timestamp;
5017 L4_MABX_B.SFunction1_o11_pn = (real_T)
5018 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CEBFF00].deltatime;
5019 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CEBFF00].data;
5020
5021 /* Decode CAN message */
5022 {
5023 {
5024 rtican_Signal_t CAN_Sgn;
5025
5026 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
5027 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5028 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5029 L4_MABX_B.SFunction1_o1_bm = ((real_T) CAN_Sgn.UnsignedSgn);
5030
5031 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
5032 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5033 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5034 L4_MABX_B.SFunction1_o2_dj = ((real_T) CAN_Sgn.UnsignedSgn);
5035
5036 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
5037 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
5038 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5039 L4_MABX_B.SFunction1_o3_px = ((real_T) CAN_Sgn.UnsignedSgn);
5040
5041 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
5042 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
5043 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5044 L4_MABX_B.SFunction1_o4_bh = ((real_T) CAN_Sgn.UnsignedSgn);
5045
5046 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
5047 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
5048 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5049 L4_MABX_B.SFunction1_o5_l = ((real_T) CAN_Sgn.UnsignedSgn);
5050
5051 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
5052 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
5053 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5054 L4_MABX_B.SFunction1_o6_i = ((real_T) CAN_Sgn.UnsignedSgn);
5055
5056 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
5057 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
5058 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5059 L4_MABX_B.SFunction1_o7_gk = ((real_T) CAN_Sgn.UnsignedSgn);
5060
5061 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
5062 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
5063 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5064 L4_MABX_B.SFunction1_o8_o = ((real_T) CAN_Sgn.UnsignedSgn);
5065 }
5066 }
5067 } else {
5068 /* set RX status to 0 because no new message has arrived */
5069 L4_MABX_B.SFunction1_o9_j = 0.0;
5070 }
5071 }
5072 }
5073
5074 /* End of Outputs for SubSystem: '<S470>/CAN_TYPE1_RX_M1_C1' */
5075
5076 /* DataTypeConversion: '<S470>/Data Type Conversion' */
5077 PositionFinalLimited = L4_MABX_B.SFunction1_o1_bm;
5078 if (PositionFinalLimited < 256.0) {
5079 if (PositionFinalLimited >= 0.0) {
5080 starting_index = (uint8_T)PositionFinalLimited;
5081 } else {
5082 starting_index = 0U;
5083 }
5084 } else {
5085 starting_index = MAX_uint8_T;
5086 }
5087
5088 L4_MABX_B.DataTypeConversion_ho = starting_index;
5089
5090 /* End of DataTypeConversion: '<S470>/Data Type Conversion' */
5091
5092 /* DataTypeConversion: '<S470>/Data Type Conversion1' */
5093 PositionFinalLimited = L4_MABX_B.SFunction1_o2_dj;
5094 if (PositionFinalLimited < 256.0) {
5095 if (PositionFinalLimited >= 0.0) {
5096 starting_index = (uint8_T)PositionFinalLimited;
5097 } else {
5098 starting_index = 0U;
5099 }
5100 } else {
5101 starting_index = MAX_uint8_T;
5102 }
5103
5104 L4_MABX_B.DataTypeConversion1_fg = starting_index;
5105
5106 /* End of DataTypeConversion: '<S470>/Data Type Conversion1' */
5107
5108 /* DataTypeConversion: '<S470>/Data Type Conversion2' */
5109 PositionFinalLimited = L4_MABX_B.SFunction1_o3_px;
5110 if (PositionFinalLimited < 256.0) {
5111 if (PositionFinalLimited >= 0.0) {
5112 starting_index = (uint8_T)PositionFinalLimited;
5113 } else {
5114 starting_index = 0U;
5115 }
5116 } else {
5117 starting_index = MAX_uint8_T;
5118 }
5119
5120 L4_MABX_B.DataTypeConversion2_nf = starting_index;
5121
5122 /* End of DataTypeConversion: '<S470>/Data Type Conversion2' */
5123
5124 /* DataTypeConversion: '<S470>/Data Type Conversion3' */
5125 PositionFinalLimited = L4_MABX_B.SFunction1_o4_bh;
5126 if (PositionFinalLimited < 256.0) {
5127 if (PositionFinalLimited >= 0.0) {
5128 starting_index = (uint8_T)PositionFinalLimited;
5129 } else {
5130 starting_index = 0U;
5131 }
5132 } else {
5133 starting_index = MAX_uint8_T;
5134 }
5135
5136 L4_MABX_B.DataTypeConversion3_i = starting_index;
5137
5138 /* End of DataTypeConversion: '<S470>/Data Type Conversion3' */
5139
5140 /* DataTypeConversion: '<S470>/Data Type Conversion4' */
5141 PositionFinalLimited = L4_MABX_B.SFunction1_o5_l;
5142 if (PositionFinalLimited < 256.0) {
5143 if (PositionFinalLimited >= 0.0) {
5144 starting_index = (uint8_T)PositionFinalLimited;
5145 } else {
5146 starting_index = 0U;
5147 }
5148 } else {
5149 starting_index = MAX_uint8_T;
5150 }
5151
5152 L4_MABX_B.DataTypeConversion4_ir = starting_index;
5153
5154 /* End of DataTypeConversion: '<S470>/Data Type Conversion4' */
5155
5156 /* DataTypeConversion: '<S470>/Data Type Conversion5' */
5157 PositionFinalLimited = L4_MABX_B.SFunction1_o6_i;
5158 if (PositionFinalLimited < 256.0) {
5159 if (PositionFinalLimited >= 0.0) {
5160 starting_index = (uint8_T)PositionFinalLimited;
5161 } else {
5162 starting_index = 0U;
5163 }
5164 } else {
5165 starting_index = MAX_uint8_T;
5166 }
5167
5168 L4_MABX_B.DataTypeConversion5_f = starting_index;
5169
5170 /* End of DataTypeConversion: '<S470>/Data Type Conversion5' */
5171
5172 /* DataTypeConversion: '<S470>/Data Type Conversion6' */
5173 PositionFinalLimited = L4_MABX_B.SFunction1_o7_gk;
5174 if (PositionFinalLimited < 256.0) {
5175 if (PositionFinalLimited >= 0.0) {
5176 starting_index = (uint8_T)PositionFinalLimited;
5177 } else {
5178 starting_index = 0U;
5179 }
5180 } else {
5181 starting_index = MAX_uint8_T;
5182 }
5183
5184 L4_MABX_B.DataTypeConversion6_n1 = starting_index;
5185
5186 /* End of DataTypeConversion: '<S470>/Data Type Conversion6' */
5187
5188 /* DataTypeConversion: '<S470>/Data Type Conversion7' */
5189 PositionFinalLimited = L4_MABX_B.SFunction1_o8_o;
5190 if (PositionFinalLimited < 256.0) {
5191 if (PositionFinalLimited >= 0.0) {
5192 starting_index = (uint8_T)PositionFinalLimited;
5193 } else {
5194 starting_index = 0U;
5195 }
5196 } else {
5197 starting_index = MAX_uint8_T;
5198 }
5199
5200 L4_MABX_B.DataTypeConversion7_bt = starting_index;
5201
5202 /* End of DataTypeConversion: '<S470>/Data Type Conversion7' */
5203
5204 /* MultiPortSwitch: '<S408>/Multiport_Switch' */
5205 L4_MABX_B.RawData_n[0] = L4_MABX_B.DataTypeConversion_ho;
5206 L4_MABX_B.RawData_n[1] = L4_MABX_B.DataTypeConversion1_fg;
5207 L4_MABX_B.RawData_n[2] = L4_MABX_B.DataTypeConversion2_nf;
5208 L4_MABX_B.RawData_n[3] = L4_MABX_B.DataTypeConversion3_i;
5209 L4_MABX_B.RawData_n[4] = L4_MABX_B.DataTypeConversion4_ir;
5210 L4_MABX_B.RawData_n[5] = L4_MABX_B.DataTypeConversion5_f;
5211 L4_MABX_B.RawData_n[6] = L4_MABX_B.DataTypeConversion6_n1;
5212 L4_MABX_B.RawData_n[7] = L4_MABX_B.DataTypeConversion7_bt;
5213
5214 /* DataTypeConversion: '<S456>/Data Type Conversion' */
5215 for (i = 0; i < 8; i++) {
5216 L4_MABX_B.DataTypeConversion_gq[i] = L4_MABX_B.RawData_n[i];
5217 }
5218
5219 /* End of DataTypeConversion: '<S456>/Data Type Conversion' */
5220
5221 /* S-Function (rti_commonblock): '<S803>/S-Function1' */
5222
5223 /* This comment workarounds a code generation problem */
5224
5225 /* End of Outputs for S-Function (rti_commonblock): '<S803>/S-Function1' */
5226
5227 /* RateTransition: '<S403>/Rate Transition' */
5228 switch (L4_MABX_DW.RateTransition_write_buf) {
5229 case 0:
5230 L4_MABX_DW.RateTransition_read_buf = 1;
5231 break;
5232
5233 case 1:
5234 L4_MABX_DW.RateTransition_read_buf = 0;
5235 break;
5236
5237 default:
5238 L4_MABX_DW.RateTransition_read_buf = L4_MABX_DW.RateTransition_last_buf_wr;
5239 break;
5240 }
5241
5242 if (L4_MABX_DW.RateTransition_read_buf != 0) {
5243 GLB_Absolute_Timestamp = L4_MABX_DW.RateTransition_Buffer1;
5244 } else {
5245 GLB_Absolute_Timestamp = L4_MABX_DW.RateTransition_Buffer0;
5246 }
5247
5248 L4_MABX_DW.RateTransition_read_buf = -1;
5249
5250 /* End of RateTransition: '<S403>/Rate Transition' */
5251
5252 /* DataTypeConversion: '<S470>/Data Type Conversion8' */
5253 L4_MABX_B.RX_status = (L4_MABX_B.SFunction1_o9_j != 0.0);
5254
5255 /* MultiPortSwitch: '<S408>/Multiport_Switch' */
5256 L4_MABX_B.RX_status_b = L4_MABX_B.RX_status;
5257
5258 /* RelationalOperator: '<S508>/Operator' incorporates:
5259 * Constant: '<S422>/Constant2'
5260 */
5261 L4_MABX_B.Operator_bc = (L4_MABX_B.DataType_oa == L4_MABX_P.Constant2_Value_na);
5262
5263 /* Logic: '<S422>/Logical Operator' */
5264 L4_MABX_B.LogicalOperator_aq = (L4_MABX_B.RX_status_b && L4_MABX_B.Operator_bc);
5265
5266 /* Outputs for Enabled SubSystem: '<S422>/CAN_RX_EC1_00' incorporates:
5267 * EnablePort: '<S506>/Enable'
5268 */
5269 if (L4_MABX_B.LogicalOperator_aq) {
5270 /* UnitDelay: '<S506>/Unit Delay' */
5271 for (i = 0; i < 39; i++) {
5272 L4_MABX_B.UnitDelay_je[i] = L4_MABX_DW.UnitDelay_DSTATE_es[i];
5273 }
5274
5275 /* End of UnitDelay: '<S506>/Unit Delay' */
5276
5277 /* MATLAB Function: '<S506>/serialize_tpdt' */
5278 /* MATLAB Function 'INPUTS_PIC_KW/CAN_PIC_KW/CAN_RX_EC1_00/CAN_RX_EC1_00/serialize_tpdt': '<S510>:1' */
5279 /* '<S510>:1:9' */
5280 if (L4_MABX_B.DataTypeConversion_gq[0] > 1) {
5281 /* '<S510>:1:6' */
5282 /* '<S510>:1:7' */
5283 for (i = 0; i < 39; i++) {
5284 L4_MABX_B.Data_a[i] = L4_MABX_B.UnitDelay_je[i];
5285 }
5286 } else {
5287 /* '<S510>:1:9' */
5288 for (i = 0; i < 39; i++) {
5289 L4_MABX_B.Data_a[i] = MAX_uint8_T;
5290 }
5291 }
5292
5293 /* '<S510>:1:11' */
5294 i = (int32_T)(7U * L4_MABX_B.DataTypeConversion_gq[0]);
5295 if ((uint32_T)i > 255U) {
5296 i = 255;
5297 }
5298
5299 tmp = i - 6U;
5300 if (tmp > (uint32_T)i) {
5301 tmp = 0U;
5302 }
5303
5304 i = (int32_T)tmp;
5305 starting_index = (uint8_T)i;
5306
5307 /* '<S510>:1:12' */
5308 L4_MABX_B.Data_a[starting_index - 1] = L4_MABX_B.DataTypeConversion_gq[1];
5309 L4_MABX_B.Data_a[starting_index] = L4_MABX_B.DataTypeConversion_gq[2];
5310 L4_MABX_B.Data_a[starting_index + 1] = L4_MABX_B.DataTypeConversion_gq[3];
5311 L4_MABX_B.Data_a[starting_index + 2] = L4_MABX_B.DataTypeConversion_gq[4];
5312 L4_MABX_B.Data_a[starting_index + 3] = L4_MABX_B.DataTypeConversion_gq[5];
5313 L4_MABX_B.Data_a[starting_index + 4] = L4_MABX_B.DataTypeConversion_gq[6];
5314 L4_MABX_B.Data_a[starting_index + 5] = L4_MABX_B.DataTypeConversion_gq[7];
5315
5316 /* '<S510>:1:13' */
5317 L4_MABX_B.RX_status_cc = (L4_MABX_B.DataTypeConversion_gq[0] ==
5318 L4_MABX_B.SPN2568_TotalNumberOfPackets);
5319
5320 /* End of MATLAB Function: '<S506>/serialize_tpdt' */
5321
5322 /* Outputs for Enabled SubSystem: '<S506>/Decode' incorporates:
5323 * EnablePort: '<S509>/Enable'
5324 */
5325 if (L4_MABX_B.RX_status_cc) {
5326 /* Inport: '<S509>/Inport' */
5327 for (i = 0; i < 39; i++) {
5328 L4_MABX_B.Inport_a[i] = L4_MABX_B.Data_a[i];
5329 }
5330
5331 /* End of Inport: '<S509>/Inport' */
5332
5333 /* Inport: '<S509>/timeStamp' */
5334 L4_MABX_B.timeStamp_i = GLB_Absolute_Timestamp;
5335
5336 /* UnitDelay: '<S509>/Unit_Delay' */
5337 L4_MABX_B.Unit_Delay_e = L4_MABX_DW.Unit_Delay_DSTATE_ob;
5338
5339 /* Sum: '<S509>/Subtract' */
5340 L4_MABX_B.Subtract_e = (real32_T)(L4_MABX_B.timeStamp_i -
5341 L4_MABX_B.Unit_Delay_e);
5342 }
5343
5344 /* End of Outputs for SubSystem: '<S506>/Decode' */
5345 }
5346
5347 /* End of Outputs for SubSystem: '<S422>/CAN_RX_EC1_00' */
5348
5349 /* DataTypeConversion: '<S507>/Data Type Conversion' */
5350 for (i = 0; i < 39; i++) {
5351 L4_MABX_B.DataTypeConversion_gg[i] = L4_MABX_B.Inport_a[i];
5352 }
5353
5354 /* End of DataTypeConversion: '<S507>/Data Type Conversion' */
5355
5356 /* DataTypeConversion: '<S518>/Data Type Conversion' */
5357 L4_MABX_B.DataTypeConversion_j4 = L4_MABX_B.DataTypeConversion_gg[19];
5358
5359 /* DataTypeConversion: '<S518>/Data Type Conversion1' */
5360 L4_MABX_B.DataTypeConversion1_c3 = L4_MABX_B.DataTypeConversion_gg[20];
5361
5362 /* ArithShift: '<S518>/Shift Arithmetic' */
5363 L4_MABX_B.ShiftArithmetic = (uint16_T)(L4_MABX_B.DataTypeConversion1_c3 << 8);
5364
5365 /* S-Function (sfix_bitop): '<S543>/Operator' */
5366 L4_MABX_B.Operator_h = (uint16_T)(L4_MABX_B.DataTypeConversion_j4 |
5367 L4_MABX_B.ShiftArithmetic);
5368
5369 /* DataTypeConversion: '<S543>/DataType' */
5370 L4_MABX_B.DataType_pr = L4_MABX_B.Operator_h;
5371
5372 /* DataTypeConversion: '<S518>/Data Type Conversion2' */
5373 L4_MABX_B.SPN544_EngineReferenceTorque = L4_MABX_B.DataType_pr;
5374
5375 /* Outputs for Enabled SubSystem: '<S624>/VDC1_0B_' incorporates:
5376 * EnablePort: '<S625>/Enable'
5377 */
5378 /* Constant: '<S442>/Constant' */
5379 if (L4_MABX_P.Constant_Value_cqb) {
5380 /* S-Function (rti_commonblock): '<S625>/S-Function1' */
5381 /* This comment workarounds a code generation problem */
5382
5383 /* dSPACE RTICAN RX Message Block: "VDC1_0B" Id:419319563 */
5384 {
5385 UInt32 *CAN_Msg;
5386 static dsfloat time_old = 0.0;
5387
5388 /* Read status and timestamp info (previous message) */
5389 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE4F0B].timestamp !=
5390 time_old) {
5391 /* ... save timestamp info for the calculation of the RX status
5392 during the consecutive sample hit*/
5393 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE4F0B].
5394 timestamp;
5395
5396 /* ... set the processed flag to one */
5397 L4_MABX_B.SFunction1_o8_h = 1.0;
5398 L4_MABX_B.SFunction1_o9_n = (real_T)
5399 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE4F0B].timestamp;
5400 L4_MABX_B.SFunction1_o10 = (real_T)
5401 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE4F0B].deltatime;
5402 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE4F0B].data;
5403
5404 /* Decode CAN message */
5405 {
5406 {
5407 rtican_Signal_t CAN_Sgn;
5408
5409 /* ...... "VDCInformationSignal" (0|2, standard signal, unsigned int, little endian) */
5410 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5411 CAN_Sgn.UnsignedSgn &= 0x00000003;
5412 L4_MABX_B.SFunction1_o1_mu = ((real_T) CAN_Sgn.UnsignedSgn);
5413
5414 /* ...... "VDCFullyOperational" (2|2, standard signal, unsigned int, little endian) */
5415 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5416 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
5417 CAN_Sgn.UnsignedSgn &= 0x00000003;
5418 L4_MABX_B.SFunction1_o2_m = ((real_T) CAN_Sgn.UnsignedSgn);
5419
5420 /* ...... "VDCBrakeLightRq" (4|2, standard signal, unsigned int, little endian) */
5421 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5422 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
5423 CAN_Sgn.UnsignedSgn &= 0x00000003;
5424 L4_MABX_B.SFunction1_o3_jl = ((real_T) CAN_Sgn.UnsignedSgn);
5425
5426 /* ...... "ROPEngCtrlActive" (8|2, standard signal, unsigned int, little endian) */
5427 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5428 CAN_Sgn.UnsignedSgn &= 0x00000003;
5429 L4_MABX_B.SFunction1_o4_ne = ((real_T) CAN_Sgn.UnsignedSgn);
5430
5431 /* ...... "ROPBrakeCtrlActive" (10|2, standard signal, unsigned int, little endian) */
5432 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5433 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
5434 CAN_Sgn.UnsignedSgn &= 0x00000003;
5435 L4_MABX_B.SFunction1_o5_p = ((real_T) CAN_Sgn.UnsignedSgn);
5436
5437 /* ...... "YCEngCtrlActive" (12|2, standard signal, unsigned int, little endian) */
5438 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5439 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
5440 CAN_Sgn.UnsignedSgn &= 0x00000003;
5441 L4_MABX_B.SFunction1_o6_e = ((real_T) CAN_Sgn.UnsignedSgn);
5442
5443 /* ...... "YCBrakeCtrlActive" (14|2, standard signal, unsigned int, little endian) */
5444 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5445 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
5446 CAN_Sgn.UnsignedSgn &= 0x00000003;
5447 L4_MABX_B.SFunction1_o7_l = ((real_T) CAN_Sgn.UnsignedSgn);
5448 }
5449 }
5450 } else {
5451 /* set RX status to 0 because no new message has arrived */
5452 L4_MABX_B.SFunction1_o8_h = 0.0;
5453 }
5454 }
5455 }
5456
5457 /* End of Constant: '<S442>/Constant' */
5458 /* End of Outputs for SubSystem: '<S624>/VDC1_0B_' */
5459
5460 /* Outputs for Enabled SubSystem: '<S626>/VDC2_0B1' incorporates:
5461 * EnablePort: '<S627>/Enable'
5462 */
5463 /* Constant: '<S443>/Constant' */
5464 if (L4_MABX_P.Constant_Value_g3) {
5465 /* S-Function (rti_commonblock): '<S627>/S-Function1' */
5466 /* This comment workarounds a code generation problem */
5467
5468 /* dSPACE RTICAN RX Message Block: "VDC2_0B" Id:418384139 */
5469 {
5470 UInt32 *CAN_Msg;
5471 static dsfloat time_old = 0.0;
5472
5473 /* Read status and timestamp info (previous message) */
5474 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0090B].timestamp !=
5475 time_old) {
5476 /* ... save timestamp info for the calculation of the RX status
5477 during the consecutive sample hit*/
5478 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0090B].
5479 timestamp;
5480
5481 /* ... set the processed flag to one */
5482 L4_MABX_B.SFunction1_o7_e = 1.0;
5483 L4_MABX_B.SFunction1_o8_d = (real_T)
5484 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0090B].timestamp;
5485 L4_MABX_B.SFunction1_o9 = (real_T)
5486 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0090B].deltatime;
5487 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0090B].data;
5488
5489 /* Decode CAN message */
5490 {
5491 {
5492 rtican_Signal_t CAN_Sgn;
5493
5494 /* ...... "SteerWheelAngle" (0|16, standard signal, unsigned int, little endian) */
5495 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5496 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
5497 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
5498 SteerWheelAngle = -31.374 + ( 0.0009765625 * ( ((real_T)
5499 CAN_Sgn.UnsignedSgn) ) );
5500
5501 /* ...... "SteerWheelTurnCounter" (16|6, standard signal, unsigned int, little endian) */
5502 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
5503 CAN_Sgn.UnsignedSgn &= 0x0000003F;
5504 L4_MABX_B.SFunction1_o2_e1 = -32 + ( ((real_T) CAN_Sgn.UnsignedSgn) );
5505
5506 /* ...... "SteerWheelAngleSensorType" (22|2, standard signal, unsigned int, little endian) */
5507 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
5508 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
5509 CAN_Sgn.UnsignedSgn &= 0x00000003;
5510 L4_MABX_B.SFunction1_o3_ko = ((real_T) CAN_Sgn.UnsignedSgn);
5511
5512 /* ...... "YawRate" (24|16, standard signal, unsigned int, little endian) */
5513 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
5514 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
5515 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
5516 YawRate = -3.92 + ( 0.0001220703125 * ( ((real_T)
5517 CAN_Sgn.UnsignedSgn) ) );
5518
5519 /* ...... "LateralAcceleration" (40|16, standard signal, unsigned int, little endian) */
5520 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
5521 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
5522 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
5523 L4_MABX_B.SFunction1_o5_i = -15.687 + ( 0.00048828125 * ( ((real_T)
5524 CAN_Sgn.UnsignedSgn) ) );
5525
5526 /* ...... "LongitudinalAcceleration" (56|8, standard signal, unsigned int, little endian) */
5527 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
5528 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5529 SPN1810_LongitudinalAcceleration = -12.5 + ( 0.1 * ( ((real_T)
5530 CAN_Sgn.UnsignedSgn) ) );
5531 }
5532 }
5533 } else {
5534 /* set RX status to 0 because no new message has arrived */
5535 L4_MABX_B.SFunction1_o7_e = 0.0;
5536 }
5537 }
5538 }
5539
5540 /* End of Constant: '<S443>/Constant' */
5541 /* End of Outputs for SubSystem: '<S626>/VDC2_0B1' */
5542
5543 /* UnitDelay: '<S631>/Unit_Delay3' */
5544 L4_MABX_B.Unit_Delay3 = L4_MABX_DW.Unit_Delay3_DSTATE;
5545
5546 /* RelationalOperator: '<S632>/Operator' incorporates:
5547 * Constant: '<S445>/Constant2'
5548 */
5549 L4_MABX_B.Operator_gd = (L4_MABX_B.DataType_oa == L4_MABX_P.Constant2_Value_ph);
5550
5551 /* Logic: '<S445>/Logical Operator' */
5552 L4_MABX_B.LogicalOperator_l = (L4_MABX_B.RX_status_b && L4_MABX_B.Operator_gd);
5553
5554 /* Outputs for Enabled SubSystem: '<S445>/CAN_RX_VI_00' incorporates:
5555 * EnablePort: '<S630>/Enable'
5556 */
5557 if (L4_MABX_B.LogicalOperator_l) {
5558 /* UnitDelay: '<S630>/Unit Delay' */
5559 for (i = 0; i < 17; i++) {
5560 L4_MABX_B.UnitDelay_bo[i] = L4_MABX_DW.UnitDelay_DSTATE_k[i];
5561 }
5562
5563 /* End of UnitDelay: '<S630>/Unit Delay' */
5564
5565 /* MATLAB Function: '<S630>/serialize_tpdt' */
5566 /* MATLAB Function 'INPUTS_PIC_KW/CAN_PIC_KW/CAN_RX_VI_00/CAN_RX_VI_00/serialize_tpdt': '<S634>:1' */
5567 /* '<S634>:1:9' */
5568 if (L4_MABX_B.DataTypeConversion_gq[0] > 1) {
5569 /* '<S634>:1:6' */
5570 /* '<S634>:1:7' */
5571 for (i = 0; i < 17; i++) {
5572 L4_MABX_B.Data[i] = L4_MABX_B.UnitDelay_bo[i];
5573 }
5574 } else {
5575 /* '<S634>:1:9' */
5576 for (i = 0; i < 17; i++) {
5577 L4_MABX_B.Data[i] = MAX_uint8_T;
5578 }
5579 }
5580
5581 /* '<S634>:1:11' */
5582 i = (int32_T)(7U * L4_MABX_B.DataTypeConversion_gq[0]);
5583 if ((uint32_T)i > 255U) {
5584 i = 255;
5585 }
5586
5587 tmp = i - 6U;
5588 if (tmp > (uint32_T)i) {
5589 tmp = 0U;
5590 }
5591
5592 i = (int32_T)tmp;
5593 starting_index = (uint8_T)i;
5594
5595 /* '<S634>:1:12' */
5596 L4_MABX_B.Data[starting_index - 1] = L4_MABX_B.DataTypeConversion_gq[1];
5597 L4_MABX_B.Data[starting_index] = L4_MABX_B.DataTypeConversion_gq[2];
5598 L4_MABX_B.Data[starting_index + 1] = L4_MABX_B.DataTypeConversion_gq[3];
5599 L4_MABX_B.Data[starting_index + 2] = L4_MABX_B.DataTypeConversion_gq[4];
5600 L4_MABX_B.Data[starting_index + 3] = L4_MABX_B.DataTypeConversion_gq[5];
5601 L4_MABX_B.Data[starting_index + 4] = L4_MABX_B.DataTypeConversion_gq[6];
5602 L4_MABX_B.Data[starting_index + 5] = L4_MABX_B.DataTypeConversion_gq[7];
5603
5604 /* '<S634>:1:13' */
5605 L4_MABX_B.RX_status_os = (L4_MABX_B.DataTypeConversion_gq[0] ==
5606 L4_MABX_B.SPN2568_TotalNumberOfPackets);
5607
5608 /* End of MATLAB Function: '<S630>/serialize_tpdt' */
5609
5610 /* Outputs for Enabled SubSystem: '<S630>/Decode' incorporates:
5611 * EnablePort: '<S633>/Enable'
5612 */
5613 if (L4_MABX_B.RX_status_os) {
5614 /* Inport: '<S633>/Inport' */
5615 for (i = 0; i < 17; i++) {
5616 L4_MABX_B.Inport[i] = L4_MABX_B.Data[i];
5617 }
5618
5619 /* End of Inport: '<S633>/Inport' */
5620
5621 /* Inport: '<S633>/timeStamp' */
5622 L4_MABX_B.timeStamp = GLB_Absolute_Timestamp;
5623
5624 /* UnitDelay: '<S633>/Unit_Delay' */
5625 L4_MABX_B.Unit_Delay_l = L4_MABX_DW.Unit_Delay_DSTATE_o;
5626
5627 /* Sum: '<S633>/Subtract' */
5628 L4_MABX_B.Subtract_oo = (real32_T)(L4_MABX_B.timeStamp -
5629 L4_MABX_B.Unit_Delay_l);
5630 }
5631
5632 /* End of Outputs for SubSystem: '<S630>/Decode' */
5633 }
5634
5635 /* End of Outputs for SubSystem: '<S445>/CAN_RX_VI_00' */
5636
5637 /* DataTypeConversion: '<S631>/Data Type Conversion' */
5638 L4_MABX_B.DataTypeConversion_pj = L4_MABX_B.Inport[0];
5639
5640 /* DataTypeConversion: '<S631>/Data Type Conversion1' */
5641 L4_MABX_B.DataTypeConversion1_pr = L4_MABX_B.Inport[1];
5642
5643 /* DataTypeConversion: '<S631>/Data Type Conversion2' */
5644 L4_MABX_B.DataTypeConversion2_i1 = L4_MABX_B.Inport[2];
5645
5646 /* DataTypeConversion: '<S631>/Data Type Conversion3' */
5647 L4_MABX_B.DataTypeConversion3_mu = L4_MABX_B.Inport[3];
5648
5649 /* DataTypeConversion: '<S631>/Data Type Conversion4' */
5650 L4_MABX_B.DataTypeConversion4_k = L4_MABX_B.Inport[4];
5651
5652 /* DataTypeConversion: '<S631>/Data Type Conversion5' */
5653 L4_MABX_B.DataTypeConversion5_c = L4_MABX_B.Inport[5];
5654
5655 /* DataTypeConversion: '<S631>/Data Type Conversion6' */
5656 L4_MABX_B.DataTypeConversion6_a = L4_MABX_B.Inport[6];
5657
5658 /* DataTypeConversion: '<S631>/Data Type Conversion7' */
5659 L4_MABX_B.DataTypeConversion7_h = L4_MABX_B.Inport[7];
5660
5661 /* DataTypeConversion: '<S631>/Data Type Conversion8' */
5662 L4_MABX_B.DataTypeConversion8_b = L4_MABX_B.Inport[8];
5663
5664 /* DataTypeConversion: '<S631>/Data Type Conversion9' */
5665 L4_MABX_B.DataTypeConversion9_m = L4_MABX_B.Inport[9];
5666
5667 /* DataTypeConversion: '<S631>/Data Type Conversion10' */
5668 L4_MABX_B.DataTypeConversion10_n = L4_MABX_B.Inport[10];
5669
5670 /* DataTypeConversion: '<S631>/Data Type Conversion11' */
5671 L4_MABX_B.DataTypeConversion11_m2 = L4_MABX_B.Inport[11];
5672
5673 /* DataTypeConversion: '<S631>/Data Type Conversion12' */
5674 L4_MABX_B.DataTypeConversion12 = L4_MABX_B.Inport[12];
5675
5676 /* DataTypeConversion: '<S631>/Data Type Conversion14' */
5677 L4_MABX_B.DataTypeConversion14_k = L4_MABX_B.Inport[13];
5678
5679 /* DataTypeConversion: '<S631>/Data Type Conversion13' */
5680 L4_MABX_B.DataTypeConversion13_h = L4_MABX_B.Inport[14];
5681
5682 /* DataTypeConversion: '<S631>/Data Type Conversion15' */
5683 L4_MABX_B.DataTypeConversion15_k = L4_MABX_B.Inport[15];
5684
5685 /* DataTypeConversion: '<S631>/Data Type Conversion16' */
5686 L4_MABX_B.DataTypeConversion16_i = L4_MABX_B.Inport[16];
5687
5688 /* RelationalOperator: '<S631>/Relational Operator1' incorporates:
5689 * Constant: '<S631>/TRUCK_1571_VIN_CPV'
5690 */
5691 L4_MABX_B.RelationalOperator1_e[0] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[0] !=
5692 L4_MABX_B.DataTypeConversion_pj);
5693 L4_MABX_B.RelationalOperator1_e[1] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[1] !=
5694 L4_MABX_B.DataTypeConversion1_pr);
5695 L4_MABX_B.RelationalOperator1_e[2] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[2] !=
5696 L4_MABX_B.DataTypeConversion2_i1);
5697 L4_MABX_B.RelationalOperator1_e[3] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[3] !=
5698 L4_MABX_B.DataTypeConversion3_mu);
5699 L4_MABX_B.RelationalOperator1_e[4] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[4] !=
5700 L4_MABX_B.DataTypeConversion4_k);
5701 L4_MABX_B.RelationalOperator1_e[5] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[5] !=
5702 L4_MABX_B.DataTypeConversion5_c);
5703 L4_MABX_B.RelationalOperator1_e[6] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[6] !=
5704 L4_MABX_B.DataTypeConversion6_a);
5705 L4_MABX_B.RelationalOperator1_e[7] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[7] !=
5706 L4_MABX_B.DataTypeConversion7_h);
5707 L4_MABX_B.RelationalOperator1_e[8] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[8] !=
5708 L4_MABX_B.DataTypeConversion8_b);
5709 L4_MABX_B.RelationalOperator1_e[9] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[9] !=
5710 L4_MABX_B.DataTypeConversion9_m);
5711 L4_MABX_B.RelationalOperator1_e[10] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[10]
5712 != L4_MABX_B.DataTypeConversion10_n);
5713 L4_MABX_B.RelationalOperator1_e[11] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[11]
5714 != L4_MABX_B.DataTypeConversion11_m2);
5715 L4_MABX_B.RelationalOperator1_e[12] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[12]
5716 != L4_MABX_B.DataTypeConversion12);
5717 L4_MABX_B.RelationalOperator1_e[13] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[13]
5718 != L4_MABX_B.DataTypeConversion14_k);
5719 L4_MABX_B.RelationalOperator1_e[14] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[14]
5720 != L4_MABX_B.DataTypeConversion13_h);
5721 L4_MABX_B.RelationalOperator1_e[15] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[15]
5722 != L4_MABX_B.DataTypeConversion15_k);
5723 L4_MABX_B.RelationalOperator1_e[16] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[16]
5724 != L4_MABX_B.DataTypeConversion16_i);
5725
5726 /* Sum: '<S631>/Add' */
5727 tmp = 0U;
5728 for (i = 0; i < 17; i++) {
5729 tmp += L4_MABX_B.RelationalOperator1_e[i];
5730 }
5731
5732 L4_MABX_B.Add_g = (uint8_T)tmp;
5733
5734 /* End of Sum: '<S631>/Add' */
5735
5736 /* RelationalOperator: '<S635>/Compare' incorporates:
5737 * Constant: '<S635>/Constant'
5738 */
5739 L4_MABX_B.Compare_n2 = (L4_MABX_B.Add_g == L4_MABX_P.Constant_Value_ft);
5740
5741 /* Logic: '<S631>/Logical Operator' */
5742 L4_MABX_B.LogicalOperator_f = (L4_MABX_B.Unit_Delay3 && L4_MABX_B.Compare_n2);
5743
5744 /* UnitDelay: '<S631>/Unit_Delay' */
5745 L4_MABX_B.Unit_Delay_dt = L4_MABX_DW.Unit_Delay_DSTATE_c0;
5746
5747 /* Logic: '<S637>/Logical Operator3' */
5748 L4_MABX_B.LogicalOperator3_j = !L4_MABX_B.Unit_Delay_dt;
5749
5750 /* UnitDelay: '<S637>/Unit_Delay' */
5751 L4_MABX_B.Unit_Delay_jaz = L4_MABX_DW.Unit_Delay_DSTATE_p4;
5752
5753 /* Logic: '<S637>/Logical Operator' */
5754 L4_MABX_B.LogicalOperator_m = (L4_MABX_B.LogicalOperator3_j &&
5755 L4_MABX_B.Unit_Delay_jaz);
5756
5757 /* Logic: '<S637>/Logical Operator1' */
5758 L4_MABX_B.LogicalOperator1_h = (L4_MABX_B.LogicalOperator_f ||
5759 L4_MABX_B.LogicalOperator_m);
5760
5761 /* Outputs for Enabled SubSystem: '<S612>/SSI2_031' incorporates:
5762 * EnablePort: '<S613>/Enable'
5763 */
5764 /* Constant: '<S436>/Constant' */
5765 if (L4_MABX_P.Constant_Value_c > 0.0) {
5766 /* S-Function (rti_commonblock): '<S613>/S-Function1' */
5767 /* This comment workarounds a code generation problem */
5768
5769 /* dSPACE RTICAN RX Message Block: "SSI2_03" Id:217065731 */
5770 {
5771 UInt32 *CAN_Msg;
5772 static dsfloat time_old = 0.0;
5773
5774 /* Read status and timestamp info (previous message) */
5775 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02903].timestamp !=
5776 time_old) {
5777 /* ... save timestamp info for the calculation of the RX status
5778 during the consecutive sample hit*/
5779 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02903].
5780 timestamp;
5781
5782 /* ... set the processed flag to one */
5783 L4_MABX_B.SFunction1_o8_j = 1.0;
5784 L4_MABX_B.SFunction1_o9_i = (real_T)
5785 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02903].timestamp;
5786 L4_MABX_B.SFunction1_o10_l = (real_T)
5787 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02903].deltatime;
5788 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02903].data;
5789
5790 /* Decode CAN message */
5791 {
5792 {
5793 rtican_Signal_t CAN_Sgn;
5794
5795 /* ...... "PitchAngleExRange" (0|24, standard signal, unsigned int, little endian) */
5796 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5797 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
5798 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[2];
5799 CAN_Sgn.UnsignedSgn &= 0x00FFFFFF;
5800 L4_MABX_B.SFunction1_o1_cb = -250 + ( 3.0517578125E-5 * ( ((real_T)
5801 CAN_Sgn.UnsignedSgn) ) );
5802
5803 /* ...... "RollAngleExRange" (24|24, standard signal, unsigned int, little endian) */
5804 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
5805 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
5806 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[5];
5807 CAN_Sgn.UnsignedSgn &= 0x00FFFFFF;
5808 L4_MABX_B.SFunction1_o2_eh = -250 + ( 3.0517578125E-5 * ( ((real_T)
5809 CAN_Sgn.UnsignedSgn) ) );
5810
5811 /* ...... "PitchAngleExRangeCompensation" (48|2, standard signal, unsigned int, little endian) */
5812 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
5813 CAN_Sgn.UnsignedSgn &= 0x00000003;
5814 L4_MABX_B.SFunction1_o3_cy = ((real_T) CAN_Sgn.UnsignedSgn);
5815
5816 /* ...... "PitchAngleExRangeFigureOfMerit" (50|2, standard signal, unsigned int, little endian) */
5817 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
5818 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
5819 CAN_Sgn.UnsignedSgn &= 0x00000003;
5820 L4_MABX_B.SFunction1_o4_k5 = ((real_T) CAN_Sgn.UnsignedSgn);
5821
5822 /* ...... "RollAngleExRangeCompensation" (52|2, standard signal, unsigned int, little endian) */
5823 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
5824 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
5825 CAN_Sgn.UnsignedSgn &= 0x00000003;
5826 L4_MABX_B.SFunction1_o5_c = ((real_T) CAN_Sgn.UnsignedSgn);
5827
5828 /* ...... "RollAngleExRangeFigureOfMerit" (54|2, standard signal, unsigned int, little endian) */
5829 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
5830 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
5831 CAN_Sgn.UnsignedSgn &= 0x00000003;
5832 L4_MABX_B.SFunction1_o6_m0 = ((real_T) CAN_Sgn.UnsignedSgn);
5833
5834 /* ...... "RllAndPtchExRngMsurementLatency" (56|8, standard signal, unsigned int, little endian) */
5835 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
5836 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5837 L4_MABX_B.SFunction1_o7_o = 0.5 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
5838 }
5839 }
5840 } else {
5841 /* set RX status to 0 because no new message has arrived */
5842 L4_MABX_B.SFunction1_o8_j = 0.0;
5843 }
5844 }
5845 }
5846
5847 /* End of Constant: '<S436>/Constant' */
5848 /* End of Outputs for SubSystem: '<S612>/SSI2_031' */
5849
5850 /* DataTypeConversion: '<S612>/Data Type Conversion1' */
5851 L4_MABX_B.PitchAngleExRange = L4_MABX_B.SFunction1_o1_cb;
5852
5853 /* Outputs for Enabled SubSystem: '<S603>/PX2_LanePosEst' incorporates:
5854 * EnablePort: '<S606>/Enable'
5855 */
5856 /* Constant: '<S433>/Constant' */
5857 if (L4_MABX_P.Constant_Value_mk) {
5858 /* S-Function (rti_commonblock): '<S606>/S-Function1' */
5859 /* This comment workarounds a code generation problem */
5860
5861 /* dSPACE RTICAN RX Message Block: "PX2_LanePosEst" Id:769 */
5862 {
5863 UInt32 *CAN_Msg;
5864 static dsfloat time_old = 0.0;
5865
5866 /* Read status and timestamp info (previous message) */
5867 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x301].timestamp !=
5868 time_old) {
5869 /* ... save timestamp info for the calculation of the RX status
5870 during the consecutive sample hit*/
5871 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x301].timestamp;
5872
5873 /* ... set the processed flag to one */
5874 L4_MABX_B.SFunction1_o5_j = 1.0;
5875 L4_MABX_B.SFunction1_o6_eu = (real_T)
5876 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x301].timestamp;
5877 L4_MABX_B.SFunction1_o7_lv = (real_T)
5878 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x301].deltatime;
5879 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x301].data;
5880
5881 /* Decode CAN message */
5882 {
5883 {
5884 rtican_Signal_t CAN_Sgn;
5885
5886 /* ...... "PX2_LanePosEstAngle" (0|16, standard signal, signed int, little endian) */
5887 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5888 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
5889 CAN_Sgn.SignedSgn &= 0x0000FFFF;
5890 if (CAN_Sgn.SignedSgn >> 15) {
5891 CAN_Sgn.SignedSgn |= 0xFFFF0000;
5892 }
5893
5894 L4_MABX_B.SFunction1_o1_dc = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
5895
5896 /* ...... "PX2_LanePosEstNumPoints" (16|8, standard signal, unsigned int, little endian) */
5897 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
5898 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5899 L4_MABX_B.SFunction1_o2_et = ((real_T) CAN_Sgn.UnsignedSgn);
5900
5901 /* ...... "PX2_LanePosEstPosition" (24|16, standard signal, signed int, little endian) */
5902 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
5903 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
5904 CAN_Sgn.SignedSgn &= 0x0000FFFF;
5905 if (CAN_Sgn.SignedSgn >> 15) {
5906 CAN_Sgn.SignedSgn |= 0xFFFF0000;
5907 }
5908
5909 L4_MABX_B.SFunction1_o3_nn = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn) );
5910
5911 /* ...... "PX2_LanePosEstNumLanes" (40|4, standard signal, unsigned int, little endian) */
5912 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
5913 CAN_Sgn.UnsignedSgn &= 0x0000000F;
5914 L4_MABX_B.SFunction1_o4_a = ((real_T) CAN_Sgn.UnsignedSgn);
5915 }
5916 }
5917 } else {
5918 /* set RX status to 0 because no new message has arrived */
5919 L4_MABX_B.SFunction1_o5_j = 0.0;
5920 }
5921 }
5922 }
5923
5924 /* End of Outputs for SubSystem: '<S603>/PX2_LanePosEst' */
5925
5926 /* Outputs for Enabled SubSystem: '<S610>/Bendix_Prop2C2_Status_30' incorporates:
5927 * EnablePort: '<S611>/Enable'
5928 */
5929 /* Constant: '<S435>/Constant' */
5930 if (L4_MABX_P.Constant_Value_d2 > 0.0) {
5931 /* S-Function (rti_commonblock): '<S611>/S-Function1' */
5932 /* This comment workarounds a code generation problem */
5933
5934 /* dSPACE RTICAN RX Message Block: "Prop2C2_Status_30" Id:419382064 */
5935 {
5936 UInt32 *CAN_Msg;
5937 static dsfloat time_old = 0.0;
5938
5939 /* Read status and timestamp info (previous message) */
5940 if (can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF4330].timestamp !=
5941 time_old) {
5942 /* ... save timestamp info for the calculation of the RX status
5943 during the consecutive sample hit*/
5944 time_old = can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF4330].
5945 timestamp;
5946
5947 /* ... set the processed flag to one */
5948 L4_MABX_B.SFunction1_o11_l = 1.0;
5949 L4_MABX_B.SFunction1_o12_h = (real_T)
5950 can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF4330].timestamp;
5951 L4_MABX_B.SFunction1_o13_l = (real_T)
5952 can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF4330].deltatime;
5953 CAN_Msg = can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF4330].data;
5954
5955 /* Decode CAN message */
5956 {
5957 {
5958 rtican_Signal_t CAN_Sgn;
5959
5960 /* ...... "PressureP4" (0|8, standard signal, unsigned int, little endian) */
5961 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5962 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5963 L4_MABX_B.SFunction1_o1_gv = 80 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
5964
5965 /* ...... "PressureP1" (8|8, standard signal, unsigned int, little endian) */
5966 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5967 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5968 L4_MABX_B.SFunction1_o2_iz = 80 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
5969
5970 /* ...... "PressureP21" (16|8, standard signal, unsigned int, little endian) */
5971 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
5972 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5973 L4_MABX_B.SFunction1_o3_p = 80 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
5974
5975 /* ...... "PressureP22" (24|8, standard signal, unsigned int, little endian) */
5976 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
5977 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5978 L4_MABX_B.SFunction1_o4_kn = 80 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
5979
5980 /* ...... "PressureP42" (32|8, standard signal, unsigned int, little endian) */
5981 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
5982 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5983 L4_MABX_B.SFunction1_o5_o = 80 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
5984
5985 /* ...... "XPR1ControlStatus" (40|4, standard signal, unsigned int, little endian) */
5986 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
5987 CAN_Sgn.UnsignedSgn &= 0x0000000F;
5988 L4_MABX_B.SFunction1_o6_lq = ((real_T) CAN_Sgn.UnsignedSgn);
5989
5990 /* ...... "XPR2ControlStatus" (44|4, standard signal, unsigned int, little endian) */
5991 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
5992 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
5993 CAN_Sgn.UnsignedSgn &= 0x0000000F;
5994 L4_MABX_B.SFunction1_o7_p = ((real_T) CAN_Sgn.UnsignedSgn);
5995
5996 /* ...... "XPR3ControlStatus" (48|4, standard signal, unsigned int, little endian) */
5997 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
5998 CAN_Sgn.UnsignedSgn &= 0x0000000F;
5999 L4_MABX_B.SFunction1_o8_f4 = ((real_T) CAN_Sgn.UnsignedSgn);
6000
6001 /* ...... "XPRErrorState" (56|2, standard signal, unsigned int, little endian) */
6002 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
6003 CAN_Sgn.UnsignedSgn &= 0x00000003;
6004 L4_MABX_B.SFunction1_o9_b = ((real_T) CAN_Sgn.UnsignedSgn);
6005
6006 /* ...... "XPRControlMode" (58|4, standard signal, unsigned int, little endian) */
6007 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
6008 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
6009 CAN_Sgn.UnsignedSgn &= 0x0000000F;
6010 L4_MABX_B.SFunction1_o10_i = ((real_T) CAN_Sgn.UnsignedSgn);
6011 }
6012 }
6013 } else {
6014 /* set RX status to 0 because no new message has arrived */
6015 L4_MABX_B.SFunction1_o11_l = 0.0;
6016 }
6017 }
6018 }
6019
6020 /* End of Constant: '<S435>/Constant' */
6021 /* End of Outputs for SubSystem: '<S610>/Bendix_Prop2C2_Status_30' */
6022
6023 /* DataTypeConversion: '<S610>/Data Type Conversion15' */
6024 PositionFinalLimited = L4_MABX_B.SFunction1_o10_i;
6025 if (PositionFinalLimited < 256.0) {
6026 if (PositionFinalLimited >= 0.0) {
6027 starting_index = (uint8_T)PositionFinalLimited;
6028 } else {
6029 starting_index = 0U;
6030 }
6031 } else {
6032 starting_index = MAX_uint8_T;
6033 }
6034
6035 L4_MABX_B.DataTypeConversion15_i = starting_index;
6036
6037 /* End of DataTypeConversion: '<S610>/Data Type Conversion15' */
6038
6039 /* DataTypeConversion: '<S610>/Data Type Conversion5' */
6040 L4_MABX_B.XPRControlMode = (ENUM_XPR_CONTROL_MODE_T)
6041 safe_cast_to_ENUM_XPR_CONTROL_M(L4_MABX_B.DataTypeConversion15_i);
6042
6043 /* DataTypeConversion: '<S610>/Data Type Conversion4' */
6044 PositionFinalLimited = L4_MABX_B.SFunction1_o9_b;
6045 if (PositionFinalLimited < 256.0) {
6046 if (PositionFinalLimited >= 0.0) {
6047 starting_index = (uint8_T)PositionFinalLimited;
6048 } else {
6049 starting_index = 0U;
6050 }
6051 } else {
6052 starting_index = MAX_uint8_T;
6053 }
6054
6055 L4_MABX_B.DataTypeConversion4_gt = starting_index;
6056
6057 /* End of DataTypeConversion: '<S610>/Data Type Conversion4' */
6058
6059 /* DataTypeConversion: '<S610>/Data Type Conversion14' */
6060 L4_MABX_B.XPRErrorState = (ENUM_XPR_ERROR_STATE_T)
6061 safe_cast_to_ENUM_XPR_ERROR_STA(L4_MABX_B.DataTypeConversion4_gt);
6062
6063 /* DataTypeConversion: '<S610>/Data Type Conversion7' */
6064 L4_MABX_B.PressureP1 = L4_MABX_B.SFunction1_o2_iz;
6065
6066 /* DataTypeConversion: '<S610>/Data Type Conversion6' */
6067 L4_MABX_B.PressureP4 = L4_MABX_B.SFunction1_o1_gv;
6068
6069 /* DataTypeConversion: '<S610>/Data Type Conversion11' */
6070 L4_MABX_B.PressureP21 = L4_MABX_B.SFunction1_o3_p;
6071
6072 /* DataTypeConversion: '<S610>/Data Type Conversion12' */
6073 L4_MABX_B.PressureP22 = L4_MABX_B.SFunction1_o4_kn;
6074
6075 /* DataTypeConversion: '<S610>/Data Type Conversion13' */
6076 L4_MABX_B.PressureP42 = L4_MABX_B.SFunction1_o5_o;
6077
6078 /* Outputs for Enabled SubSystem: '<S564>/PropB_REAX_2_13' incorporates:
6079 * EnablePort: '<S566>/Enable'
6080 */
6081 /* Constant: '<S452>/useReAX_CAN_Ch2' */
6082 if (L4_MABX_P.useReAX_CAN_Ch2_Value) {
6083 /* S-Function (rti_commonblock): '<S566>/S-Function1' */
6084 /* This comment workarounds a code generation problem */
6085
6086 /* dSPACE RTICAN RX Message Block: "PropB_REAX_2_13" Id:419426323 */
6087 {
6088 UInt32 *CAN_Msg;
6089 static dsfloat time_old = 0.0;
6090
6091 /* Read status and timestamp info (previous message) */
6092 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF013].timestamp !=
6093 time_old) {
6094 /* ... save timestamp info for the calculation of the RX status
6095 during the consecutive sample hit*/
6096 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF013].
6097 timestamp;
6098
6099 /* ... set the processed flag to one */
6100 L4_MABX_B.SFunction1_o3_oa = 1.0;
6101 L4_MABX_B.SFunction1_o4_km = (real_T)
6102 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF013].timestamp;
6103 L4_MABX_B.SFunction1_o5_cm = (real_T)
6104 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF013].deltatime;
6105 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF013].data;
6106
6107 /* Decode CAN message */
6108 {
6109 {
6110 rtican_Signal_t CAN_Sgn;
6111
6112 /* ...... "PropB_REAX_2_ActualHandwheelPos" (0|32, standard signal, signed int, little endian) */
6113 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
6114 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
6115 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[2];
6116 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[3];
6117 L4_MABX_B.SFunction1_o1_kx = 0.0439453125 * ( ((real_T)
6118 CAN_Sgn.SignedSgn) );
6119
6120 /* ...... "PropB_REAX_2_EchoedStrWhlPos" (32|32, standard signal, signed int, little endian) */
6121 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
6122 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
6123 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[6];
6124 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[7];
6125 L4_MABX_B.SFunction1_o2_lv = 0.0439453125 * ( ((real_T)
6126 CAN_Sgn.SignedSgn) );
6127 }
6128 }
6129 } else {
6130 /* set RX status to 0 because no new message has arrived */
6131 L4_MABX_B.SFunction1_o3_oa = 0.0;
6132 }
6133 }
6134 }
6135
6136 /* End of Outputs for SubSystem: '<S564>/PropB_REAX_2_13' */
6137
6138 /* Logic: '<S452>/Logical Operator' incorporates:
6139 * Constant: '<S452>/useReAX_CAN_Ch2'
6140 */
6141 L4_MABX_B.EnablePropB_ReAX_CAN6 = !L4_MABX_P.useReAX_CAN_Ch2_Value;
6142
6143 /* Outputs for Enabled SubSystem: '<S565>/PropB_REAX_2_13' incorporates:
6144 * EnablePort: '<S567>/Enable'
6145 */
6146 if (L4_MABX_B.EnablePropB_ReAX_CAN6) {
6147 /* S-Function (rti_commonblock): '<S567>/S-Function1' */
6148 /* This comment workarounds a code generation problem */
6149
6150 /* dSPACE RTICAN RX Message Block: "PropB_REAX_2_13" Id:419426323 */
6151 {
6152 UInt32 *CAN_Msg;
6153 static dsfloat time_old = 0.0;
6154
6155 /* Read status and timestamp info (previous message) */
6156 if (can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF013].timestamp !=
6157 time_old) {
6158 /* ... save timestamp info for the calculation of the RX status
6159 during the consecutive sample hit*/
6160 time_old = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF013].
6161 timestamp;
6162
6163 /* ... set the processed flag to one */
6164 L4_MABX_B.SFunction1_o3_a = 1.0;
6165 L4_MABX_B.SFunction1_o4_gz = (real_T)
6166 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF013].timestamp;
6167 L4_MABX_B.SFunction1_o5_pk = (real_T)
6168 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF013].deltatime;
6169 CAN_Msg = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF013].data;
6170
6171 /* Decode CAN message */
6172 {
6173 {
6174 rtican_Signal_t CAN_Sgn;
6175
6176 /* ...... "PropB_REAX_2_ActualHandwheelPos" (0|32, standard signal, signed int, little endian) */
6177 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
6178 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
6179 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[2];
6180 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[3];
6181 L4_MABX_B.SFunction1_o1_l4 = 0.0439453125 * ( ((real_T)
6182 CAN_Sgn.SignedSgn) );
6183
6184 /* ...... "PropB_REAX_2_EchoedStrWhlPos" (32|32, standard signal, signed int, little endian) */
6185 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
6186 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
6187 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[6];
6188 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[7];
6189 L4_MABX_B.SFunction1_o2_gu = 0.0439453125 * ( ((real_T)
6190 CAN_Sgn.SignedSgn) );
6191 }
6192 }
6193 } else {
6194 /* set RX status to 0 because no new message has arrived */
6195 L4_MABX_B.SFunction1_o3_a = 0.0;
6196 }
6197 }
6198 }
6199
6200 /* End of Outputs for SubSystem: '<S565>/PropB_REAX_2_13' */
6201
6202 /* Switch: '<S429>/Switch' incorporates:
6203 * Constant: '<S452>/useReAX_CAN_Ch2'
6204 */
6205 if (L4_MABX_P.useReAX_CAN_Ch2_Value) {
6206 ReAX_ActualHandwheelPos = L4_MABX_B.SFunction1_o1_kx;
6207 } else {
6208 ReAX_ActualHandwheelPos = L4_MABX_B.SFunction1_o1_l4;
6209 }
6210
6211 /* S-Function (dsa_tcpip_setup_sfcn): '<S386>/dsa_tcpip_setup' */
6212
6213 /* Level2 S-Function Block: '<S386>/dsa_tcpip_setup' (dsa_tcpip_setup_sfcn) */
6214 {
6215 SimStruct *rts = L4_MABX_M->childSfunctions[3];
6216 ssSetOutputPortSignal(rts, 0, &EthernetLinkStatus);
6217 sfcnOutputs(rts,0);
6218 }
6219
6220 /* Constant: '<S3>/Enable' */
6221 L4_MABX_B.Enable = L4_MABX_P.Enable_Value;
6222
6223 /* DiscretePulseGenerator: '<S385>/Heartbeat' */
6224 L4_MABX_B.Heartbeat = (L4_MABX_DW.clockTickCounter < L4_MABX_P.Heartbeat_Duty)
6225 && (L4_MABX_DW.clockTickCounter >= 0) ? L4_MABX_P.Heartbeat_Amp : 0.0;
6226 if (L4_MABX_DW.clockTickCounter >= L4_MABX_P.Heartbeat_Period - 1.0) {
6227 L4_MABX_DW.clockTickCounter = 0;
6228 } else {
6229 L4_MABX_DW.clockTickCounter++;
6230 }
6231
6232 /* End of DiscretePulseGenerator: '<S385>/Heartbeat' */
6233
6234 /* DataTypeConversion: '<S385>/Cast To Boolean' */
6235 L4_MABX_B.Heartbeat_l = (L4_MABX_B.Heartbeat != 0.0);
6236
6237 /* UnitDelay: '<S3>/Unit_Delay' */
6238 L4_MABX_B.EStop_p = L4_MABX_DW.Unit_Delay_79_DSTATE;
6239 L4_MABX_B.EnableSW = L4_MABX_DW.Unit_Delay_80_DSTATE;
6240 L4_MABX_B.EngagePB_j = L4_MABX_DW.Unit_Delay_81_DSTATE;
6241 L4_MABX_B.AutonomousEnabled_i = L4_MABX_DW.Unit_Delay_45_DSTATE;
6242 L4_MABX_B.MABX_Mode_j = L4_MABX_DW.Unit_Delay_47_DSTATE;
6243
6244 /* BusCreator: '<S385>/Bus Creator' */
6245 L4_MABX_B.BusCreator.Heartbeat = L4_MABX_B.Heartbeat_l;
6246 L4_MABX_B.BusCreator.EStop = L4_MABX_B.EStop_p;
6247 L4_MABX_B.BusCreator.EnableSW = L4_MABX_B.EnableSW;
6248 L4_MABX_B.BusCreator.EngagePB = L4_MABX_B.EngagePB_j;
6249 L4_MABX_B.BusCreator.AutonomousEnabled = L4_MABX_B.AutonomousEnabled_i;
6250 L4_MABX_B.BusCreator.MABX_Mode = L4_MABX_B.MABX_Mode_j;
6251
6252 /* S-Function (dsa_gen_tx_RTMapsEncode_sfun): '<S393>/Encoder' */
6253 Update_Tx_RTMapsEncode((RTMapsTX*)&L4_MABX_B.BusCreator,
6254 &L4_MABX_B.Encoder_o1[0], &L4_MABX_B.Encoder_o2);
6255
6256 /* S-Function (dsa_tcpip_udp_sfcn): '<S387>/TCPIP_Com' */
6257
6258 /* Level2 S-Function Block: '<S387>/TCPIP_Com' (dsa_tcpip_udp_sfcn) */
6259 {
6260 SimStruct *rts = L4_MABX_M->childSfunctions[4];
6261 sfcnOutputs(rts,0);
6262 }
6263
6264 /* DataTypeConversion: '<S384>/Data Type Conversion' */
6265 L4_MABX_B.DataTypeConversion_f = L4_MABX_B.TCPIP_Com_o2;
6266
6267 /* S-Function (dsa_gen_rx_RTMapsDecode_sfun): '<S390>/Decoder' */
6268 Update_Rx_RTMapsDecode((uint8_T*)&L4_MABX_B.TCPIP_Com_o3[0],
6269 L4_MABX_B.DataTypeConversion_f, L4_MABX_B.TCPIP_Com_o1[2],
6270 &L4_MABX_B.Decoder_o1, &L4_MABX_B.Decoder_o2, &L4_MABX_B.Decoder_o3);
6271
6272 /* RelationalOperator: '<S392>/Compare' incorporates:
6273 * Constant: '<S392>/Constant'
6274 */
6275 L4_MABX_B.Compare_ax = ((int32_T)L4_MABX_B.Decoder_o1.Heartbeat > (int32_T)
6276 L4_MABX_P.Constant_Value_ilu);
6277
6278 /* UnitDelay: '<S391>/Delay Input1' */
6279 L4_MABX_B.Uk1_i = L4_MABX_DW.DelayInput1_DSTATE_p;
6280
6281 /* RelationalOperator: '<S391>/FixPt Relational Operator' */
6282 L4_MABX_B.FixPtRelationalOperator = ((int32_T)L4_MABX_B.Compare_ax > (int32_T)
6283 L4_MABX_B.Uk1_i);
6284
6285 /* UnitDelay: '<S389>/Unit Delay' */
6286 L4_MABX_B.UnitDelay = L4_MABX_DW.UnitDelay_DSTATE;
6287
6288 /* Switch: '<S389>/Switch' incorporates:
6289 * Constant: '<S389>/Constant1'
6290 */
6291 if (L4_MABX_B.FixPtRelationalOperator) {
6292 L4_MABX_B.Count = L4_MABX_P.Constant1_Value_e;
6293 } else {
6294 /* Sum: '<S389>/Sum' incorporates:
6295 * Constant: '<S389>/Constant'
6296 */
6297 L4_MABX_B.Sum = L4_MABX_P.Constant_Value_hp + L4_MABX_B.UnitDelay;
6298 L4_MABX_B.Count = L4_MABX_B.Sum;
6299 }
6300
6301 /* End of Switch: '<S389>/Switch' */
6302
6303 /* Switch: '<S389>/Switch1' incorporates:
6304 * Constant: '<S389>/Constant2'
6305 * Constant: '<S389>/Constant3'
6306 */
6307 if (L4_MABX_B.Count > L4_MABX_P.Switch1_Threshold) {
6308 L4_MABX_B.Switch1_om = L4_MABX_P.Constant2_Value_c;
6309 } else {
6310 L4_MABX_B.Switch1_om = L4_MABX_P.Constant3_Value_a;
6311 }
6312
6313 /* End of Switch: '<S389>/Switch1' */
6314
6315 /* Logic: '<S384>/AND' */
6316 RTMapsOk = ((EthernetLinkStatus != 0.0) && L4_MABX_B.Switch1_om);
6317
6318 /* Switch: '<S384>/Switch9' incorporates:
6319 * Constant: '<S384>/Failure'
6320 * Constant: '<S384>/No Data'
6321 * Switch: '<S384>/Switch'
6322 * Switch: '<S384>/Switch1'
6323 * Switch: '<S384>/Switch3'
6324 * Switch: '<S384>/Switch4'
6325 */
6326 if (RTMapsOk) {
6327 /* Gain: '<S384>/for_logging7' */
6328 L4_MABX_B.SupervisorMode_b = (int8_T)(((uint32_T)L4_MABX_P.for_logging7_Gain
6329 * L4_MABX_B.Decoder_o1.SupervisorMode) >> 7);
6330 SupervisorMode = (uint8_T)L4_MABX_B.SupervisorMode_b;
6331
6332 /* Gain: '<S384>/for_logging' */
6333 L4_MABX_B.for_logging = L4_MABX_P.for_logging_Gain *
6334 L4_MABX_B.Decoder_o1.CurrentAzimuth;
6335 CurrentAzimuth_rad = L4_MABX_B.for_logging;
6336
6337 /* Gain: '<S384>/for_logging1' */
6338 L4_MABX_B.for_logging1 = L4_MABX_P.for_logging1_Gain *
6339 L4_MABX_B.Decoder_o1.TargetAzimuth;
6340 TargetAzimuth_rad = L4_MABX_B.for_logging1;
6341
6342 /* Gain: '<S384>/m//s_to_km//h_2' */
6343 L4_MABX_B.ms_to_kmh_2 = L4_MABX_P.ms_to_kmh_2_Gain *
6344 L4_MABX_B.Decoder_o1.TargetVelocity;
6345 TargetVelocity_kph = L4_MABX_B.ms_to_kmh_2;
6346
6347 /* Gain: '<S384>/for_logging2' */
6348 L4_MABX_B.for_logging2 = L4_MABX_P.for_logging2_Gain *
6349 L4_MABX_B.Decoder_o1.Curvature;
6350 Curvature = L4_MABX_B.for_logging2;
6351 } else {
6352 SupervisorMode = L4_MABX_P.Failure_Value_g;
6353 CurrentAzimuth_rad = L4_MABX_P.NoData_Value;
6354 TargetAzimuth_rad = L4_MABX_P.NoData_Value;
6355 TargetVelocity_kph = L4_MABX_P.NoData_Value;
6356 Curvature = L4_MABX_P.NoData_Value;
6357 }
6358
6359 /* End of Switch: '<S384>/Switch9' */
6360
6361 /* Outputs for Atomic SubSystem: '<S65>/Task_10ms' */
6362 /* RelationalOperator: '<S95>/Operator' incorporates:
6363 * Constant: '<S76>/Supervisor_Autonomous_Mode'
6364 */
6365 L4_MABX_B.Operator_ns = (L4_MABX_P.Supervisor_Autonomous_Mode_Valu ==
6366 SupervisorMode);
6367
6368 /* Logic: '<S76>/AND' */
6369 L4_MABX_B.AND_l = (L4_MABX_B.Operator_ns && RTMapsOk && EnableSw && EStop);
6370
6371 /* MultiPortSwitch: '<S76>/Autonomous Mode Switch1' incorporates:
6372 * Constant: '<S76>/AUTONOMOUS_MODE_SELECTOR_APV'
6373 * Constant: '<S76>/GhostMode1'
6374 */
6375 if (AUTONOMOUS_MODE_SELECTOR_APV == ENUM_AUTONOMOUS_MODE_T_AUTO) {
6376 AutonomousEnabled = L4_MABX_B.AND_l;
6377 } else {
6378 AutonomousEnabled = (L4_MABX_P.GhostMode1_Value != 0);
6379 }
6380
6381 /* End of MultiPortSwitch: '<S76>/Autonomous Mode Switch1' */
6382
6383 /* Logic: '<S83>/Logical Operator' */
6384 L4_MABX_B.LogicalOperator_dy = !AutonomousEnabled;
6385
6386 /* Outputs for Atomic SubSystem: '<S83>/If_Then_Else' */
6387
6388 /* Constant: '<S83>/APTC_PEDAL_POSITION_OVR_APV' incorporates:
6389 * Constant: '<S83>/APTC_DESIRED_PEDAL_POSITION_APV'
6390 */
6391 L4_MABX_If_Then_Else(L4_MABX_P.APTC_PEDAL_POSITION_OVR_APV_Val,
6392 L4_MABX_P.APTC_DESIRED_PEDAL_POSITION_APV,
6393 Pedal_pwm_position, &L4_MABX_B.If_Then_Else_o);
6394
6395 /* End of Outputs for SubSystem: '<S83>/If_Then_Else' */
6396
6397 /* DataTypeConversion: '<S83>/Data Type Conversion1' */
6398 L4_MABX_B.DataTypeConversion1_ht = L4_MABX_B.SFunction1_o5_aw;
6399
6400 /* Lookup_n-D: '<S83>/2-D Lookup Table' */
6401 L4_MABX_B.uDLookupTable = look2_binlcapw(L4_MABX_B.If_Then_Else_o.Switch,
6402 L4_MABX_B.DataTypeConversion1_ht, APTC_TRQ_PED_TRQ_POS_STEP_MPV,
6403 APTC_TRQ_PED_TRQ_ESPD_STEP_MPV, APTC_TRQ_PED_TRQ_DATA_MPV,
6404 L4_MABX_P.uDLookupTable_maxIndex, 8U);
6405
6406 /* DataTypeConversion: '<S77>/Data Type Conversion5' */
6407 L4_MABX_B.DataTypeConversion5_o = L4_MABX_B.SFunction1_o1_c4;
6408
6409 /* RateTransition: '<S81>/TmpRTBAtSignal Conversion1Inport1' */
6410 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
6411 L4_MABX_B.distanceSpdTarget_e = L4_MABX_DW.TmpRTBAtSignalConversion1Inport;
6412 }
6413
6414 /* MultiPortSwitch: '<S81>/Multiport Switch' incorporates:
6415 * Constant: '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
6416 */
6417 switch (LONG_SPEED_SRC_SELECTOR_APV) {
6418 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
6419 /* SignalConversion: '<S81>/Signal Conversion1' */
6420 L4_MABX_B.Vehicle_speed_target_g = L4_MABX_B.distanceSpdTarget_e;
6421 L4_MABX_B.Vehicle_speed_target_o = L4_MABX_B.Vehicle_speed_target_g;
6422 break;
6423
6424 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
6425 /* SignalConversion: '<S81>/Signal Conversion4' incorporates:
6426 * Constant: '<S81>/VSPD_TARGET_KPH_APV'
6427 */
6428 L4_MABX_B.Vehicle_speed_target_o5 = VSPD_TARGET_KPH_APV;
6429 L4_MABX_B.Vehicle_speed_target_o = L4_MABX_B.Vehicle_speed_target_o5;
6430 break;
6431
6432 default:
6433 /* SignalConversion: '<S81>/Signal Conversion9' */
6434 L4_MABX_B.Vehicle_speed_target_k = TargetVelocity_kph;
6435 L4_MABX_B.Vehicle_speed_target_o = L4_MABX_B.Vehicle_speed_target_k;
6436 break;
6437 }
6438
6439 /* SignalConversion: '<S81>/Signal Conversion16' */
6440 L4_MABX_B.VSPD_TARGET_KPH_APV_g = L4_MABX_B.Vehicle_speed_target_o;
6441
6442 /* Saturate: '<S81>/Saturation9' incorporates:
6443 * Constant: '<S81>/VSPD_HYST_KPH_APV'
6444 */
6445 DeltaTime = L4_MABX_P.VSPD_HYST_KPH_APV_Value;
6446 Time56 = L4_MABX_P.Saturation9_LowerSat;
6447 PositionFinalLimited = L4_MABX_P.Saturation9_UpperSat;
6448 if (DeltaTime > PositionFinalLimited) {
6449 L4_MABX_B.VSPD_HYST_KPH_APV_f = PositionFinalLimited;
6450 } else if (DeltaTime < Time56) {
6451 L4_MABX_B.VSPD_HYST_KPH_APV_f = Time56;
6452 } else {
6453 L4_MABX_B.VSPD_HYST_KPH_APV_f = DeltaTime;
6454 }
6455
6456 /* End of Saturate: '<S81>/Saturation9' */
6457
6458 /* Sum: '<S103>/Add' */
6459 L4_MABX_B.Add_k = L4_MABX_B.VSPD_TARGET_KPH_APV_g +
6460 L4_MABX_B.VSPD_HYST_KPH_APV_f;
6461
6462 /* RelationalOperator: '<S103>/Relational Operator' */
6463 L4_MABX_B.f_vspd_geq_than_target_plus_hys = (L4_MABX_B.DataTypeConversion5_o >=
6464 L4_MABX_B.Add_k);
6465
6466 /* Saturate: '<S81>/Saturation1' incorporates:
6467 * Constant: '<S81>/VSPD_BRAKE_STOP_THRESH_KPH_APV'
6468 */
6469 DeltaTime = L4_MABX_P.VSPD_BRAKE_STOP_THRESH_KPH_APV_;
6470 Time56 = L4_MABX_P.Saturation1_LowerSat;
6471 PositionFinalLimited = L4_MABX_P.Saturation1_UpperSat;
6472 if (DeltaTime > PositionFinalLimited) {
6473 L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b = PositionFinalLimited;
6474 } else if (DeltaTime < Time56) {
6475 L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b = Time56;
6476 } else {
6477 L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b = DeltaTime;
6478 }
6479
6480 /* End of Saturate: '<S81>/Saturation1' */
6481
6482 /* RelationalOperator: '<S103>/Relational Operator1' */
6483 L4_MABX_B.f_target_is_stop_thresh = (L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b
6484 == L4_MABX_B.VSPD_TARGET_KPH_APV_g);
6485
6486 /* RelationalOperator: '<S199>/Compare' incorporates:
6487 * Constant: '<S199>/Constant'
6488 */
6489 L4_MABX_B.Compare_e = (L4_MABX_B.VSPD_TARGET_KPH_APV_g ==
6490 L4_MABX_P.Constant_Value_k);
6491
6492 /* RelationalOperator: '<S103>/Relational Operator2' */
6493 L4_MABX_B.RelationalOperator2_p = (L4_MABX_B.VSPD_HYST_KPH_APV_f >=
6494 L4_MABX_B.VSPD_TARGET_KPH_APV_g);
6495
6496 /* RelationalOperator: '<S103>/Relational Operator3' */
6497 L4_MABX_B.RelationalOperator3 = (L4_MABX_B.VSPD_HYST_KPH_APV_f >=
6498 L4_MABX_B.DataTypeConversion5_o);
6499
6500 /* Logic: '<S103>/Logical Operator' */
6501 L4_MABX_B.f_vspd_leq_than_hyst_and_target = (L4_MABX_B.RelationalOperator2_p &&
6502 L4_MABX_B.RelationalOperator3);
6503
6504 /* Logic: '<S103>/Logical Operator1' */
6505 L4_MABX_B.LogicalOperator1_mr = (L4_MABX_B.f_vspd_geq_than_target_plus_hys ||
6506 L4_MABX_B.f_target_is_stop_thresh || L4_MABX_B.Compare_e ||
6507 L4_MABX_B.f_vspd_leq_than_hyst_and_target);
6508
6509 /* DataTypeConversion: '<S77>/Data Type Conversion4' */
6510 L4_MABX_B.DataTypeConversion4_d5 = AutonomousEnabled;
6511
6512 /* Logic: '<S103>/Logical Operator2' */
6513 L4_MABX_B.F_Brake_control_active = (L4_MABX_B.LogicalOperator1_mr &&
6514 L4_MABX_B.DataTypeConversion4_d5);
6515
6516 /* DataTypeConversion: '<S79>/Data Type Conversion4' */
6517 L4_MABX_B.DataTypeConversion4_i = L4_MABX_B.SFunction1_o1_c4;
6518
6519 /* DataTypeConversion: '<S77>/Data Type Conversion1' */
6520 PositionFinalLimited = L4_MABX_B.SFunction1_o8_jt;
6521 if (PositionFinalLimited < 256.0) {
6522 if (PositionFinalLimited >= 0.0) {
6523 starting_index = (uint8_T)PositionFinalLimited;
6524 } else {
6525 starting_index = 0U;
6526 }
6527 } else {
6528 starting_index = MAX_uint8_T;
6529 }
6530
6531 L4_MABX_B.DataTypeConversion1_ba = starting_index;
6532
6533 /* End of DataTypeConversion: '<S77>/Data Type Conversion1' */
6534
6535 /* DataTypeConversion: '<S77>/Data Type Conversion3' */
6536 L4_MABX_B.BrkPedArbBrakeSwitch_c = (ENUM_J1939_SWITCH_T)
6537 L4_MABX_B.DataTypeConversion1_ba;
6538
6539 /* DataTypeConversion: '<S203>/Data Type Conversion1' */
6540 L4_MABX_B.DataTypeConversion1_cy = L4_MABX_B.BrkPedArbBrakeSwitch_c;
6541
6542 /* RelationalOperator: '<S209>/Compare' incorporates:
6543 * Constant: '<S209>/Constant'
6544 */
6545 L4_MABX_B.Compare_e5 = (L4_MABX_B.DataTypeConversion1_cy ==
6546 L4_MABX_P.CompareToConstant2_const);
6547
6548 /* Logic: '<S203>/Logical Operator2' */
6549 L4_MABX_B.LogicalOperator2_nt = !L4_MABX_B.Compare_e5;
6550
6551 /* DataTypeConversion: '<S203>/Data Type Conversion5' */
6552 PositionFinalLimited = floor(L4_MABX_B.SFunction1_o4_kq);
6553 if (rtIsNaN(PositionFinalLimited) || rtIsInf(PositionFinalLimited)) {
6554 PositionFinalLimited = 0.0;
6555 } else {
6556 PositionFinalLimited = fmod(PositionFinalLimited, 256.0);
6557 }
6558
6559 L4_MABX_B.DataTypeConversion5_p = (uint8_T)(PositionFinalLimited < 0.0 ?
6560 (int32_T)(uint8_T)-(int8_T)(uint8_T)-PositionFinalLimited : (int32_T)
6561 (uint8_T)PositionFinalLimited);
6562
6563 /* End of DataTypeConversion: '<S203>/Data Type Conversion5' */
6564
6565 /* DataTypeConversion: '<S203>/Data Type Conversion3' */
6566 L4_MABX_B.DataTypeConversion3_l = (ENUM_J1939_SWITCH_T)
6567 L4_MABX_B.DataTypeConversion5_p;
6568
6569 /* RelationalOperator: '<S207>/Compare' incorporates:
6570 * Constant: '<S207>/Constant'
6571 */
6572 L4_MABX_B.Compare_ih = (L4_MABX_B.DataTypeConversion3_l ==
6573 L4_MABX_P.CompareToConstant_const_e);
6574
6575 /* RelationalOperator: '<S208>/Compare' incorporates:
6576 * Constant: '<S208>/Constant'
6577 */
6578 L4_MABX_B.Compare_ex = (L4_MABX_B.DataTypeConversion3_l ==
6579 L4_MABX_P.CompareToConstant1_const_j);
6580
6581 /* Logic: '<S203>/BrakingActive2' */
6582 L4_MABX_B.BrakingActive2 = (L4_MABX_B.Compare_ih || L4_MABX_B.Compare_ex);
6583
6584 /* Logic: '<S203>/BrakingActive1' */
6585 L4_MABX_B.f_brake_sw_off = (L4_MABX_B.LogicalOperator2_nt &&
6586 L4_MABX_B.BrakingActive2);
6587
6588 /* RelationalOperator: '<S210>/Compare' incorporates:
6589 * Constant: '<S210>/Constant'
6590 */
6591 L4_MABX_B.Compare_ay = (L4_MABX_B.SPN524_TransSelectedGear >
6592 L4_MABX_P.Constant_Value_il);
6593
6594 /* RelationalOperator: '<S211>/Compare' incorporates:
6595 * Constant: '<S211>/Constant'
6596 */
6597 L4_MABX_B.Compare_o = (L4_MABX_B.SPN523_TransCurrentGear >
6598 L4_MABX_P.Constant_Value_f);
6599
6600 /* Logic: '<S203>/Logical Operator1' */
6601 L4_MABX_B.f_brk_gov_inactive = !L4_MABX_B.F_Brake_control_active;
6602
6603 /* Logic: '<S203>/Logical Operator' */
6604 L4_MABX_B.LogicalOperator_ke = (AutonomousEnabled && L4_MABX_B.f_brake_sw_off &&
6605 L4_MABX_B.Compare_ay && L4_MABX_B.Compare_o && L4_MABX_B.f_brk_gov_inactive);
6606
6607 /* Outputs for Enabled SubSystem: '<S79>/Throttle_controller_gov' incorporates:
6608 * EnablePort: '<S206>/Enable'
6609 */
6610 if (L4_MABX_B.LogicalOperator_ke) {
6611 if (!L4_MABX_DW.Throttle_controller_gov_MODE) {
6612 /* InitializeConditions for UnitDelay: '<S214>/Unit_Delay1' */
6613 L4_MABX_DW.Unit_Delay1_DSTATE_p1 =
6614 L4_MABX_P.Unit_Delay1_InitialCondition_o;
6615
6616 /* InitializeConditions for UnitDelay: '<S214>/Unit_Delay' */
6617 L4_MABX_DW.Unit_Delay_DSTATE_lq = L4_MABX_P.Unit_Delay_InitialCondition_b2;
6618
6619 /* InitializeConditions for UnitDelay: '<S241>/Unit_Delay' */
6620 L4_MABX_DW.Unit_Delay_DSTATE_be = L4_MABX_P.Unit_Delay_InitialCondition_lj;
6621
6622 /* InitializeConditions for UnitDelay: '<S261>/Unit_Delay1' */
6623 L4_MABX_DW.Unit_Delay1_DSTATE_h = L4_MABX_P.Unit_Delay1_InitialCondition_a;
6624
6625 /* InitializeConditions for UnitDelay: '<S262>/Unit_Delay' */
6626 L4_MABX_DW.Unit_Delay_DSTATE_fi = L4_MABX_P.Unit_Delay_InitialCondition_bm;
6627
6628 /* InitializeConditions for UnitDelay: '<S266>/FixPt Unit Delay2' */
6629 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gq =
6630 L4_MABX_P.FixPtUnitDelay2_InitialCondit_a;
6631
6632 /* InitializeConditions for UnitDelay: '<S266>/FixPt Unit Delay1' */
6633 L4_MABX_DW.FixPtUnitDelay1_DSTATE_a =
6634 L4_MABX_P.FixPtUnitDelay1_InitialCondit_o;
6635
6636 /* InitializeConditions for UnitDelay: '<S261>/Unit_Delay2' */
6637 L4_MABX_DW.Unit_Delay2_DSTATE_m = L4_MABX_P.Unit_Delay2_InitialCondition_j;
6638
6639 /* InitializeConditions for UnitDelay: '<S216>/Unit_Delay' */
6640 L4_MABX_DW.Unit_Delay_DSTATE_fz = L4_MABX_P.Unit_Delay_InitialCondition_kg;
6641 L4_MABX_DW.Throttle_controller_gov_MODE = true;
6642 }
6643
6644 /* DataTypeConversion: '<S213>/Data Type Conversion9' */
6645 L4_MABX_B.DataTypeConversion9_h = L4_MABX_B.SFunction1_o4_e1;
6646
6647 /* DataTypeConversion: '<S213>/Data Type Conversion1' */
6648 L4_MABX_B.DataTypeConversion1_iq = L4_MABX_B.SFunction1_o2_pk;
6649
6650 /* Sum: '<S213>/Add' */
6651 L4_MABX_B.Add_di = L4_MABX_B.DataTypeConversion9_h +
6652 L4_MABX_B.DataTypeConversion1_iq;
6653
6654 /* RelationalOperator: '<S218>/Relational Operator1' incorporates:
6655 * Constant: '<S213>/Constant1'
6656 */
6657 L4_MABX_B.RelationalOperator1_ng = (L4_MABX_B.Add_di >=
6658 L4_MABX_P.Constant1_Value_c);
6659
6660 /* RelationalOperator: '<S218>/Relational Operator' incorporates:
6661 * Constant: '<S213>/Constant3'
6662 */
6663 L4_MABX_B.RelationalOperator_d3 = (L4_MABX_B.Add_di <=
6664 L4_MABX_P.Constant3_Value_d);
6665
6666 /* Outputs for Atomic SubSystem: '<S218>/If_Then_Else1' */
6667
6668 /* Constant: '<S213>/Constant3' */
6669 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_d3,
6670 L4_MABX_P.Constant3_Value_d, L4_MABX_B.Add_di,
6671 &L4_MABX_B.If_Then_Else1_h);
6672
6673 /* End of Outputs for SubSystem: '<S218>/If_Then_Else1' */
6674
6675 /* Outputs for Atomic SubSystem: '<S218>/If_Then_Else' */
6676
6677 /* Constant: '<S213>/Constant1' */
6678 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_ng,
6679 L4_MABX_P.Constant1_Value_c,
6680 L4_MABX_B.If_Then_Else1_h.Switch,
6681 &L4_MABX_B.If_Then_Else_ct);
6682
6683 /* End of Outputs for SubSystem: '<S218>/If_Then_Else' */
6684
6685 /* DataTypeConversion: '<S213>/Data Type Conversion2' */
6686 L4_MABX_B.DataTypeConversion2_id = L4_MABX_B.SPN514_NominalFrictionPercentTo;
6687
6688 /* RelationalOperator: '<S219>/Relational Operator1' incorporates:
6689 * Constant: '<S213>/Constant2'
6690 */
6691 L4_MABX_B.RelationalOperator1_ch = (L4_MABX_B.DataTypeConversion2_id >=
6692 L4_MABX_P.Constant2_Value_b);
6693
6694 /* RelationalOperator: '<S219>/Relational Operator' incorporates:
6695 * Constant: '<S213>/Constant4'
6696 */
6697 L4_MABX_B.RelationalOperator_j = (L4_MABX_B.DataTypeConversion2_id <=
6698 L4_MABX_P.Constant4_Value);
6699
6700 /* Outputs for Atomic SubSystem: '<S219>/If_Then_Else1' */
6701
6702 /* Constant: '<S213>/Constant4' */
6703 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_j,
6704 L4_MABX_P.Constant4_Value,
6705 L4_MABX_B.DataTypeConversion2_id,
6706 &L4_MABX_B.If_Then_Else1_kg);
6707
6708 /* End of Outputs for SubSystem: '<S219>/If_Then_Else1' */
6709
6710 /* Outputs for Atomic SubSystem: '<S219>/If_Then_Else' */
6711
6712 /* Constant: '<S213>/Constant2' */
6713 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_ch,
6714 L4_MABX_P.Constant2_Value_b,
6715 L4_MABX_B.If_Then_Else1_kg.Switch,
6716 &L4_MABX_B.If_Then_Else_bo);
6717
6718 /* End of Outputs for SubSystem: '<S219>/If_Then_Else' */
6719
6720 /* DataTypeConversion: '<S213>/Data Type Conversion3' */
6721 L4_MABX_B.DataTypeConversion3_he = L4_MABX_B.SPN2978_EstEngParasiticLossesPe;
6722
6723 /* RelationalOperator: '<S220>/Relational Operator1' incorporates:
6724 * Constant: '<S213>/Constant5'
6725 */
6726 L4_MABX_B.RelationalOperator1_l = (L4_MABX_B.DataTypeConversion3_he >=
6727 L4_MABX_P.Constant5_Value);
6728
6729 /* RelationalOperator: '<S220>/Relational Operator' incorporates:
6730 * Constant: '<S213>/Constant6'
6731 */
6732 L4_MABX_B.RelationalOperator_fd = (L4_MABX_B.DataTypeConversion3_he <=
6733 L4_MABX_P.Constant6_Value);
6734
6735 /* Outputs for Atomic SubSystem: '<S220>/If_Then_Else1' */
6736
6737 /* Constant: '<S213>/Constant6' */
6738 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_fd,
6739 L4_MABX_P.Constant6_Value,
6740 L4_MABX_B.DataTypeConversion3_he,
6741 &L4_MABX_B.If_Then_Else1_dz);
6742
6743 /* End of Outputs for SubSystem: '<S220>/If_Then_Else1' */
6744
6745 /* Outputs for Atomic SubSystem: '<S220>/If_Then_Else' */
6746
6747 /* Constant: '<S213>/Constant5' */
6748 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_l,
6749 L4_MABX_P.Constant5_Value,
6750 L4_MABX_B.If_Then_Else1_dz.Switch,
6751 &L4_MABX_B.If_Then_Else_br);
6752
6753 /* End of Outputs for SubSystem: '<S220>/If_Then_Else' */
6754
6755 /* DataTypeConversion: '<S217>/Data Type Conversion5' */
6756 L4_MABX_B.DataTypeConversion5_i = L4_MABX_B.SFunction1_o1_gh;
6757
6758 /* Lookup_n-D: '<S224>/1-D Lookup Table' */
6759 L4_MABX_B.Coeff_of_drag_Cd = look1_binlcapw(L4_MABX_B.DataTypeConversion5_i,
6760 L4_MABX_P.uDLookupTable_bp01Data, L4_MABX_P.uDLookupTable_tableData, 2U);
6761
6762 /* Gain: '<S224>/KPH_TO_M//S' */
6763 L4_MABX_B.KPH_TO_MS = L4_MABX_P.KPH_TO_MS_Gain *
6764 L4_MABX_B.DataTypeConversion5_i;
6765
6766 /* Math: '<S224>/Math Function'
6767 *
6768 * About '<S224>/Math Function':
6769 * Operator: magnitude^2
6770 */
6771 PositionFinalLimited = L4_MABX_B.KPH_TO_MS;
6772 L4_MABX_B.MathFunction = PositionFinalLimited * PositionFinalLimited;
6773
6774 /* DataTypeConversion: '<S217>/Data Type Conversion' */
6775 L4_MABX_B.DataTypeConversion_i = L4_MABX_B.SFunction1_o1_afv;
6776
6777 /* Gain: '<S224>/KPA_TO_PA' */
6778 L4_MABX_B.KPA_TO_PA = L4_MABX_P.KPA_TO_PA_Gain *
6779 L4_MABX_B.DataTypeConversion_i;
6780
6781 /* DataTypeConversion: '<S217>/Data Type Conversion4' */
6782 L4_MABX_B.DataTypeConversion4_b = L4_MABX_B.SFunction1_o3_ng;
6783
6784 /* Sum: '<S224>/Add' incorporates:
6785 * Constant: '<S224>/Constant'
6786 */
6787 L4_MABX_B.Add_o = L4_MABX_B.DataTypeConversion4_b + L4_MABX_P.Constant_Value;
6788
6789 /* Product: '<S224>/Product' incorporates:
6790 * Constant: '<S224>/Constant1'
6791 */
6792 L4_MABX_B.Product_n = L4_MABX_B.Add_o * L4_MABX_P.Constant1_Value_p;
6793
6794 /* Product: '<S224>/Divide' */
6795 L4_MABX_B.Air_density_kgm3 = L4_MABX_B.KPA_TO_PA / L4_MABX_B.Product_n;
6796
6797 /* Product: '<S224>/Product1' incorporates:
6798 * Constant: '<S217>/Veh_Frontal_Area_m^2'
6799 * Constant: '<S224>/Constant2'
6800 */
6801 L4_MABX_B.Aerodynamic_resistance_Ra = L4_MABX_B.Coeff_of_drag_Cd *
6802 L4_MABX_P.Veh_Frontal_Area_m2_Value * L4_MABX_B.MathFunction *
6803 L4_MABX_B.Air_density_kgm3 * L4_MABX_P.Constant2_Value_h;
6804
6805 /* DataTypeConversion: '<S217>/Data Type Conversion6' */
6806 L4_MABX_B.DataTypeConversion6_f = L4_MABX_B.PitchAngleExRange;
6807
6808 /* Product: '<S225>/Divide' incorporates:
6809 * Constant: '<S225>/Constant2'
6810 * Constant: '<S225>/Constant3'
6811 */
6812 L4_MABX_B.grade_angle_radians = L4_MABX_B.DataTypeConversion6_f *
6813 L4_MABX_P.Constant2_Value_bc / L4_MABX_P.Constant3_Value_n;
6814
6815 /* Trigonometry: '<S225>/Trigonometric Function' */
6816 L4_MABX_B.TrigonometricFunction_a = sin(L4_MABX_B.grade_angle_radians);
6817
6818 /* Product: '<S225>/Product1' incorporates:
6819 * Constant: '<S225>/Constant1'
6820 */
6821 L4_MABX_B.Gradient_resistance_Rg = L4_MABX_B.SPN1760_GrossCombinationVehicle
6822 * L4_MABX_B.TrigonometricFunction_a * L4_MABX_P.Constant1_Value_a;
6823
6824 /* Gain: '<S228>/KPA_TO_M//S' */
6825 L4_MABX_B.KPA_TO_MS = L4_MABX_P.KPA_TO_MS_Gain *
6826 L4_MABX_B.DataTypeConversion5_i;
6827
6828 /* Product: '<S228>/Divide2' incorporates:
6829 * Constant: '<S228>/Constant2'
6830 * Constant: '<S228>/Constant6'
6831 */
6832 L4_MABX_B.Divide2_c = L4_MABX_P.Constant2_Value_bq * L4_MABX_B.KPA_TO_MS /
6833 L4_MABX_P.Constant6_Value_g;
6834
6835 /* Math: '<S228>/Math Function'
6836 *
6837 * About '<S228>/Math Function':
6838 * Operator: magnitude^2
6839 */
6840 PositionFinalLimited = L4_MABX_B.Divide2_c;
6841 L4_MABX_B.MathFunction_l = PositionFinalLimited * PositionFinalLimited;
6842
6843 /* Sum: '<S228>/Add' incorporates:
6844 * Constant: '<S228>/Constant1'
6845 */
6846 L4_MABX_B.Add_nj = L4_MABX_P.Constant1_Value_m + L4_MABX_B.MathFunction_l;
6847
6848 /* Outputs for Atomic SubSystem: '<S222>/If_Then_Else' */
6849
6850 /* Constant: '<S217>/TIRE1_tire_pressure' incorporates:
6851 * Constant: '<S222>/Truck166_tire_pressure'
6852 */
6853 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_h,
6854 L4_MABX_P.TIRE1_tire_pressure_Value,
6855 L4_MABX_P.Truck166_tire_pressure_Value,
6856 &L4_MABX_B.If_Then_Else_nr);
6857
6858 /* End of Outputs for SubSystem: '<S222>/If_Then_Else' */
6859
6860 /* Gain: '<S228>/KPA_TO_BAR' */
6861 L4_MABX_B.KPA_TO_BAR = L4_MABX_P.KPA_TO_BAR_Gain *
6862 L4_MABX_B.If_Then_Else_nr.Switch;
6863
6864 /* Product: '<S228>/Divide' */
6865 L4_MABX_B.Divide_k = L4_MABX_B.Add_nj / L4_MABX_B.KPA_TO_BAR;
6866
6867 /* Sum: '<S228>/Add1' incorporates:
6868 * Constant: '<S228>/Constant'
6869 */
6870 L4_MABX_B.Coeff_of_rolling_resistance_Cr = L4_MABX_P.Constant_Value_h +
6871 L4_MABX_B.Divide_k;
6872
6873 /* Product: '<S226>/Divide1' incorporates:
6874 * Constant: '<S226>/Constant4'
6875 * Constant: '<S226>/Constant5'
6876 */
6877 L4_MABX_B.grade_angle_radians_a = L4_MABX_B.DataTypeConversion6_f *
6878 L4_MABX_P.Constant4_Value_o / L4_MABX_P.Constant5_Value_p;
6879
6880 /* Trigonometry: '<S226>/Trigonometric Function' */
6881 L4_MABX_B.TrigonometricFunction_e = cos(L4_MABX_B.grade_angle_radians_a);
6882
6883 /* Product: '<S226>/Product2' incorporates:
6884 * Constant: '<S226>/Constant3'
6885 */
6886 L4_MABX_B.Rolling_resistance_Rr = L4_MABX_B.Coeff_of_rolling_resistance_Cr *
6887 L4_MABX_B.SPN1760_GrossCombinationVehicle *
6888 L4_MABX_B.TrigonometricFunction_e * L4_MABX_P.Constant3_Value_p;
6889
6890 /* Sum: '<S222>/Add' incorporates:
6891 * Constant: '<S222>/Constant'
6892 */
6893 L4_MABX_B.TotalTractiveForce_N = ((L4_MABX_B.Aerodynamic_resistance_Ra +
6894 L4_MABX_B.Gradient_resistance_Rg) + L4_MABX_B.Rolling_resistance_Rr) +
6895 L4_MABX_P.Constant_Value_g;
6896
6897 /* Saturate: '<S217>/Saturation' */
6898 DeltaTime = L4_MABX_B.SPN526_TransActualGearRatio;
6899 Time56 = L4_MABX_P.Saturation_LowerSat_p;
6900 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_n;
6901 if (DeltaTime > PositionFinalLimited) {
6902 L4_MABX_B.Saturation_g = PositionFinalLimited;
6903 } else if (DeltaTime < Time56) {
6904 L4_MABX_B.Saturation_g = Time56;
6905 } else {
6906 L4_MABX_B.Saturation_g = DeltaTime;
6907 }
6908
6909 /* End of Saturate: '<S217>/Saturation' */
6910
6911 /* MATLAB Function: '<S217>/F_wheel_to_Tq_eng' incorporates:
6912 * Constant: '<S217>/N_rar'
6913 * Constant: '<S217>/R_wheel_m'
6914 * Constant: '<S217>/eta'
6915 */
6916 /* MATLAB Function 'STATE_CONTROL_10ms/Throttle_controller_gov/Determine_engine_torque_and_losses/CalculateRoadLoadTorque/F_wheel_to_Tq_eng': '<S223>:1' */
6917 /* '<S223>:1:3' */
6918 L4_MABX_B.road_load_tq = L4_MABX_B.TotalTractiveForce_N *
6919 L4_MABX_P.R_wheel_m_Value / L4_MABX_P.N_rar_Value / L4_MABX_B.Saturation_g
6920 / L4_MABX_P.eta_Value;
6921
6922 /* DataTypeConversion: '<S217>/Data Type Conversion1' */
6923 L4_MABX_B.DataTypeConversion1_be = L4_MABX_B.SPN544_EngineReferenceTorque;
6924
6925 /* Product: '<S217>/Divide' */
6926 L4_MABX_B.RoadLoadTorque_fract = L4_MABX_B.road_load_tq /
6927 L4_MABX_B.DataTypeConversion1_be;
6928
6929 /* Gain: '<S217>/Gain' */
6930 L4_MABX_B.RoadLoadTorque_pct = L4_MABX_P.Gain_Gain_n *
6931 L4_MABX_B.RoadLoadTorque_fract;
6932
6933 /* Outputs for Atomic SubSystem: '<S213>/If_Then_Else' */
6934
6935 /* Constant: '<S213>/UseFeedForwardRoadLoad' incorporates:
6936 * Constant: '<S213>/ZeroRoadLoadCPV'
6937 */
6938 L4_MABX_If_Then_Else(L4_MABX_P.UseFeedForwardRoadLoad_Value,
6939 L4_MABX_B.RoadLoadTorque_pct,
6940 L4_MABX_P.ZeroRoadLoadCPV_Value,
6941 &L4_MABX_B.If_Then_Else_a);
6942
6943 /* End of Outputs for SubSystem: '<S213>/If_Then_Else' */
6944
6945 /* Sum: '<S213>/Add1' */
6946 L4_MABX_B.FeedForwardTorque_pct = (L4_MABX_B.If_Then_Else_bo.Switch +
6947 L4_MABX_B.If_Then_Else_br.Switch) + L4_MABX_B.If_Then_Else_a.Switch;
6948
6949 /* UnitDelay: '<S214>/Unit_Delay1' */
6950 L4_MABX_B.Unit_Delay1_m5 = L4_MABX_DW.Unit_Delay1_DSTATE_p1;
6951
6952 /* Logic: '<S214>/Logical Operator' incorporates:
6953 * Constant: '<S214>/Constant1'
6954 */
6955 L4_MABX_B.f_gpid_reset = (L4_MABX_P.Constant1_Value_g1 ||
6956 L4_MABX_B.Unit_Delay1_m5);
6957
6958 /* Sum: '<S214>/Subtract' */
6959 L4_MABX_B.Subtract_f = L4_MABX_B.VSPD_TARGET_KPH_APV_g -
6960 L4_MABX_B.VSPD_HYST_KPH_APV_f;
6961
6962 /* RelationalOperator: '<S214>/Relational Operator' */
6963 L4_MABX_B.RelationalOperator_fl = (L4_MABX_B.DataTypeConversion4_i >
6964 L4_MABX_B.Subtract_f);
6965
6966 /* UnitDelay: '<S214>/Unit_Delay' */
6967 L4_MABX_B.Unit_Delay_d5 = L4_MABX_DW.Unit_Delay_DSTATE_lq;
6968
6969 /* RelationalOperator: '<S214>/Relational Operator1' */
6970 L4_MABX_B.RelationalOperator1_d = (L4_MABX_B.RelationalOperator_fl !=
6971 L4_MABX_B.Unit_Delay_d5);
6972
6973 /* Lookup_n-D: '<S235>/2D_Lookup_Table' */
6974 L4_MABX_B.uD_Lookup_Table_am = look2_binlcapw
6975 (L4_MABX_B.SPN1760_GrossCombinationVehicle,
6976 L4_MABX_B.SPN526_TransActualGearRatio, TQ_DEM_MASS_STEP_MPV,
6977 TQ_DEM_GEAR_RATIO_STEP_MPV, TQ_DEM_KP_DATA_MPV,
6978 L4_MABX_P.uD_Lookup_Table_maxIndex, 8U);
6979
6980 /* Lookup_n-D: '<S236>/2D_Lookup_Table' */
6981 L4_MABX_B.uD_Lookup_Table_o = look2_binlcapw
6982 (L4_MABX_B.SPN1760_GrossCombinationVehicle,
6983 L4_MABX_B.SPN526_TransActualGearRatio, TQ_DEM_MASS_STEP_MPV,
6984 TQ_DEM_GEAR_RATIO_STEP_MPV, TQ_DEM_KI_DATA_MPV,
6985 L4_MABX_P.uD_Lookup_Table_maxIndex_p, 8U);
6986
6987 /* Lookup_n-D: '<S237>/2D_Lookup_Table' */
6988 L4_MABX_B.uD_Lookup_Table_h = look2_binlcapw
6989 (L4_MABX_B.SPN1760_GrossCombinationVehicle,
6990 L4_MABX_B.SPN526_TransActualGearRatio, TQ_DEM_MASS_STEP_MPV,
6991 TQ_DEM_GEAR_RATIO_STEP_MPV, TQ_DEM_KD_DATA_MPV,
6992 L4_MABX_P.uD_Lookup_Table_maxIndex_a, 8U);
6993
6994 /* Abs: '<S238>/Abs' */
6995 L4_MABX_B.Abs_igm = fabs(L4_MABX_B.uD_Lookup_Table_o);
6996
6997 /* Abs: '<S238>/Abs1' */
6998 L4_MABX_B.Abs1_a = fabs(L4_MABX_B.uD_Lookup_Table_h);
6999
7000 /* UnitDelay: '<S241>/Unit_Delay' */
7001 L4_MABX_B.Unit_Delay_i0 = L4_MABX_DW.Unit_Delay_DSTATE_be;
7002
7003 /* Logic: '<S241>/Logical Operator1' */
7004 L4_MABX_B.LogicalOperator1_o = (L4_MABX_B.Unit_Delay_i0 ||
7005 L4_MABX_B.f_gpid_reset);
7006
7007 /* UnitDelay: '<S261>/Unit_Delay1' */
7008 L4_MABX_B.Unit_Delay1_dw = L4_MABX_DW.Unit_Delay1_DSTATE_h;
7009
7010 /* Logic: '<S261>/Logical Operator' */
7011 L4_MABX_B.LogicalOperator_at = (L4_MABX_B.LogicalOperator1_o ||
7012 L4_MABX_B.Unit_Delay1_dw);
7013
7014 /* UnitDelay: '<S262>/Unit_Delay' */
7015 L4_MABX_B.Unit_Delay_ne = L4_MABX_DW.Unit_Delay_DSTATE_fi;
7016
7017 /* Logic: '<S262>/Logical Operator1' */
7018 L4_MABX_B.LogicalOperator1_k = (L4_MABX_B.LogicalOperator1_o ||
7019 L4_MABX_B.Unit_Delay_ne);
7020
7021 /* UnitDelay: '<S266>/FixPt Unit Delay2' */
7022 L4_MABX_B.FixPtUnitDelay2_a = L4_MABX_DW.FixPtUnitDelay2_DSTATE_gq;
7023
7024 /* UnitDelay: '<S266>/FixPt Unit Delay1' */
7025 L4_MABX_B.Xold_a = L4_MABX_DW.FixPtUnitDelay1_DSTATE_a;
7026
7027 /* Switch: '<S266>/Init' */
7028 if (L4_MABX_B.FixPtUnitDelay2_a != 0) {
7029 L4_MABX_B.Init_pu = L4_MABX_B.VSPD_TARGET_KPH_APV_g;
7030 } else {
7031 L4_MABX_B.Init_pu = L4_MABX_B.Xold_a;
7032 }
7033
7034 /* End of Switch: '<S266>/Init' */
7035
7036 /* Abs: '<S262>/Abs' incorporates:
7037 * Constant: '<S206>/TqDemSlewInc'
7038 */
7039 L4_MABX_B.Abs_n = fabs(L4_MABX_P.TqDemSlewInc_Value);
7040
7041 /* Product: '<S262>/Product1' incorporates:
7042 * Constant: '<S206>/TqDemDt'
7043 */
7044 L4_MABX_B.Product1_g = L4_MABX_B.Abs_n * L4_MABX_P.TqDemDt_Value;
7045
7046 /* Sum: '<S262>/Add1' */
7047 L4_MABX_B.Add1_g = L4_MABX_B.Init_pu + L4_MABX_B.Product1_g;
7048
7049 /* MinMax: '<S262>/MinMax2' */
7050 DeltaTime = L4_MABX_B.VSPD_TARGET_KPH_APV_g;
7051 PositionFinalLimited = L4_MABX_B.Add1_g;
7052 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7053 PositionFinalLimited = DeltaTime;
7054 }
7055
7056 L4_MABX_B.MinMax2_n = PositionFinalLimited;
7057
7058 /* End of MinMax: '<S262>/MinMax2' */
7059
7060 /* Abs: '<S262>/Abs1' incorporates:
7061 * Constant: '<S206>/TqDemSlewDec'
7062 */
7063 L4_MABX_B.Abs1_d = fabs(L4_MABX_P.TqDemSlewDec_Value);
7064
7065 /* Product: '<S262>/Product2' incorporates:
7066 * Constant: '<S206>/TqDemDt'
7067 */
7068 L4_MABX_B.Product2_bn = L4_MABX_P.TqDemDt_Value * L4_MABX_B.Abs1_d;
7069
7070 /* Sum: '<S262>/Subtract1' */
7071 L4_MABX_B.Subtract1_o = L4_MABX_B.Init_pu - L4_MABX_B.Product2_bn;
7072
7073 /* MinMax: '<S262>/MinMax1' */
7074 DeltaTime = L4_MABX_B.MinMax2_n;
7075 PositionFinalLimited = L4_MABX_B.Subtract1_o;
7076 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7077 PositionFinalLimited = DeltaTime;
7078 }
7079
7080 L4_MABX_B.MinMax1_g = PositionFinalLimited;
7081
7082 /* End of MinMax: '<S262>/MinMax1' */
7083
7084 /* Outputs for Atomic SubSystem: '<S262>/If_Then_Else' */
7085 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_k,
7086 L4_MABX_B.DataTypeConversion4_i, L4_MABX_B.MinMax1_g,
7087 &L4_MABX_B.If_Then_Else_cp);
7088
7089 /* End of Outputs for SubSystem: '<S262>/If_Then_Else' */
7090
7091 /* Sum: '<S239>/Subtract' */
7092 L4_MABX_B.Subtract_jb = L4_MABX_B.If_Then_Else_cp.Switch -
7093 L4_MABX_B.DataTypeConversion4_i;
7094
7095 /* MinMax: '<S261>/MinMax1' incorporates:
7096 * Constant: '<S206>/TqDemDt'
7097 * Constant: '<S206>/TqDemTFildCtrlErrorSecs'
7098 */
7099 DeltaTime = L4_MABX_P.TqDemDt_Value;
7100 PositionFinalLimited = L4_MABX_P.TqDemTFildCtrlErrorSecs_Value;
7101 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7102 PositionFinalLimited = DeltaTime;
7103 }
7104
7105 L4_MABX_B.MinMax1_d = PositionFinalLimited;
7106
7107 /* End of MinMax: '<S261>/MinMax1' */
7108
7109 /* Saturate: '<S261>/Saturation' */
7110 DeltaTime = L4_MABX_B.MinMax1_d;
7111 Time56 = L4_MABX_P.Saturation_LowerSat_g5;
7112 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_f;
7113 if (DeltaTime > PositionFinalLimited) {
7114 L4_MABX_B.Saturation_dy = PositionFinalLimited;
7115 } else if (DeltaTime < Time56) {
7116 L4_MABX_B.Saturation_dy = Time56;
7117 } else {
7118 L4_MABX_B.Saturation_dy = DeltaTime;
7119 }
7120
7121 /* End of Saturate: '<S261>/Saturation' */
7122
7123 /* Product: '<S261>/Divide' incorporates:
7124 * Constant: '<S206>/TqDemDt'
7125 */
7126 L4_MABX_B.Divide_n = L4_MABX_P.TqDemDt_Value / L4_MABX_B.Saturation_dy;
7127
7128 /* Product: '<S261>/Product2' */
7129 L4_MABX_B.Product2_l = L4_MABX_B.Subtract_jb * L4_MABX_B.Divide_n;
7130
7131 /* Sum: '<S261>/Subtract1' incorporates:
7132 * Constant: '<S261>/Constant1'
7133 */
7134 L4_MABX_B.Subtract1_k = L4_MABX_P.Constant1_Value_ci - L4_MABX_B.Divide_n;
7135
7136 /* UnitDelay: '<S261>/Unit_Delay2' */
7137 L4_MABX_B.Unit_Delay2_o = L4_MABX_DW.Unit_Delay2_DSTATE_m;
7138
7139 /* Product: '<S261>/Product1' */
7140 L4_MABX_B.Product1_p = L4_MABX_B.Subtract1_k * L4_MABX_B.Unit_Delay2_o;
7141
7142 /* Sum: '<S261>/Add1' */
7143 L4_MABX_B.Add1_i = L4_MABX_B.Product2_l + L4_MABX_B.Product1_p;
7144
7145 /* Outputs for Atomic SubSystem: '<S261>/If_Then_Else' */
7146 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_at, L4_MABX_B.Subtract_jb,
7147 L4_MABX_B.Add1_i, &L4_MABX_B.If_Then_Else_k);
7148
7149 /* End of Outputs for SubSystem: '<S261>/If_Then_Else' */
7150
7151 /* RelationalOperator: '<S246>/Compare' incorporates:
7152 * Constant: '<S246>/Constant'
7153 */
7154 L4_MABX_B.Compare_go = (L4_MABX_B.Abs1_a >
7155 L4_MABX_P.CompareToConstant1_const_i);
7156
7157 /* Outputs for Enabled SubSystem: '<S238>/Calculate_D_term' */
7158
7159 /* Constant: '<S206>/TqDemDt' incorporates:
7160 * Constant: '<S206>/TqDemTFildTSecs'
7161 */
7162 L4_MABX_Calculate_D_term(L4_MABX_B.Compare_go, L4_MABX_B.uD_Lookup_Table_h,
7163 L4_MABX_P.TqDemDt_Value, L4_MABX_B.LogicalOperator1_o,
7164 L4_MABX_B.If_Then_Else_k.Switch, L4_MABX_P.TqDemTFildTSecs_Value,
7165 &L4_MABX_B.Calculate_D_term_h, &L4_MABX_DW.Calculate_D_term_h,
7166 &L4_MABX_P.Calculate_D_term_h);
7167
7168 /* End of Outputs for SubSystem: '<S238>/Calculate_D_term' */
7169
7170 /* Product: '<S244>/Product' */
7171 L4_MABX_B.Product_i = L4_MABX_B.uD_Lookup_Table_am *
7172 L4_MABX_B.If_Then_Else_k.Switch;
7173
7174 /* RelationalOperator: '<S206>/Relational Operator' */
7175 L4_MABX_B.RelationalOperator_a = (L4_MABX_B.SPN524_TransSelectedGear !=
7176 L4_MABX_B.SPN523_TransCurrentGear);
7177
7178 /* UnitDelay: '<S216>/Unit_Delay' */
7179 L4_MABX_B.Unit_Delay_m = L4_MABX_DW.Unit_Delay_DSTATE_fz;
7180
7181 /* RelationalOperator: '<S245>/Compare' incorporates:
7182 * Constant: '<S245>/Constant'
7183 */
7184 L4_MABX_B.Compare_p = (L4_MABX_B.Abs_igm >
7185 L4_MABX_P.CompareToConstant_const_d);
7186
7187 /* Outputs for Enabled SubSystem: '<S238>/Calculate_I_term' */
7188
7189 /* Constant: '<S206>/TqDemDt' incorporates:
7190 * Constant: '<S206>/GpidAwCondIntegration'
7191 * Constant: '<S206>/TqDemAwHyst'
7192 */
7193 L4_MABX_Calculate_I_term(L4_MABX_B.Compare_p, L4_MABX_B.Product_i,
7194 L4_MABX_B.uD_Lookup_Table_o, L4_MABX_B.If_Then_Else_ct.Switch,
7195 L4_MABX_B.If_Then_Else_k.Switch, L4_MABX_B.LogicalOperator1_o,
7196 L4_MABX_P.TqDemDt_Value, L4_MABX_B.FeedForwardTorque_pct,
7197 L4_MABX_P.GpidAwCondIntegration_Value, L4_MABX_P.TqDemAwHyst_Value,
7198 L4_MABX_B.RelationalOperator_a, L4_MABX_B.Unit_Delay_m,
7199 &L4_MABX_B.Calculate_I_term_n, &L4_MABX_DW.Calculate_I_term_n,
7200 &L4_MABX_P.Calculate_I_term_n);
7201
7202 /* End of Outputs for SubSystem: '<S238>/Calculate_I_term' */
7203
7204 /* RelationalOperator: '<S264>/min_relop' incorporates:
7205 * Constant: '<S206>/TqDemSlewInc'
7206 * Constant: '<S264>/min_val'
7207 */
7208 L4_MABX_B.min_relop_cb = (L4_MABX_P.CheckStaticLowerBound_min_b <=
7209 L4_MABX_P.TqDemSlewInc_Value);
7210
7211 /* Assertion: '<S264>/Assertion' */
7212 utAssert(L4_MABX_B.min_relop_cb);
7213
7214 /* Sum: '<S240>/Add' */
7215 L4_MABX_B.Add_ds = ((L4_MABX_B.Product_i +
7216 L4_MABX_B.Calculate_I_term_n.If_Then_Else.Switch) +
7217 L4_MABX_B.Calculate_D_term_h.Subtract) +
7218 L4_MABX_B.FeedForwardTorque_pct;
7219
7220 /* RelationalOperator: '<S267>/Relational Operator1' incorporates:
7221 * Constant: '<S206>/TqDemLimMax'
7222 */
7223 L4_MABX_B.RelationalOperator1_ja = (L4_MABX_B.Add_ds >=
7224 L4_MABX_P.TqDemLimMax_Value);
7225
7226 /* RelationalOperator: '<S267>/Relational Operator' incorporates:
7227 * Constant: '<S206>/TqDemLimMin'
7228 */
7229 L4_MABX_B.RelationalOperator_p4 = (L4_MABX_B.Add_ds <=
7230 L4_MABX_P.TqDemLimMin_Value);
7231
7232 /* Outputs for Atomic SubSystem: '<S267>/If_Then_Else1' */
7233
7234 /* Constant: '<S206>/TqDemLimMin' */
7235 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_p4,
7236 L4_MABX_P.TqDemLimMin_Value, L4_MABX_B.Add_ds,
7237 &L4_MABX_B.If_Then_Else1_h3);
7238
7239 /* End of Outputs for SubSystem: '<S267>/If_Then_Else1' */
7240
7241 /* Outputs for Atomic SubSystem: '<S267>/If_Then_Else' */
7242
7243 /* Constant: '<S206>/TqDemLimMax' */
7244 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_ja,
7245 L4_MABX_P.TqDemLimMax_Value,
7246 L4_MABX_B.If_Then_Else1_h3.Switch,
7247 &L4_MABX_B.If_Then_Else_pi);
7248
7249 /* End of Outputs for SubSystem: '<S267>/If_Then_Else' */
7250
7251 /* SignalConversion: '<S206>/OutportBufferForPID_d_term' */
7252 L4_MABX_B.PID_d_term_c = L4_MABX_B.Calculate_D_term_h.Subtract;
7253
7254 /* SignalConversion: '<S206>/OutportBufferForPID_hold_i_term_f' */
7255 L4_MABX_B.PID_hold_i_term_f_b =
7256 L4_MABX_B.Calculate_I_term_n.LogicalOperator2;
7257
7258 /* SignalConversion: '<S206>/OutportBufferForPID_i_term' */
7259 L4_MABX_B.PID_i_term_c = L4_MABX_B.Calculate_I_term_n.If_Then_Else.Switch;
7260 } else {
7261 if (L4_MABX_DW.Throttle_controller_gov_MODE) {
7262 /* Disable for Enabled SubSystem: '<S238>/Calculate_D_term' */
7263 if (L4_MABX_DW.Calculate_D_term_h.Calculate_D_term_MODE) {
7264 L4_Calculate_D_term_Disable(&L4_MABX_B.Calculate_D_term_h,
7265 &L4_MABX_DW.Calculate_D_term_h, &L4_MABX_P.Calculate_D_term_h);
7266 }
7267
7268 /* End of Disable for SubSystem: '<S238>/Calculate_D_term' */
7269
7270 /* Disable for Enabled SubSystem: '<S238>/Calculate_I_term' */
7271 if (L4_MABX_DW.Calculate_I_term_n.Calculate_I_term_MODE) {
7272 L4_Calculate_I_term_Disable(&L4_MABX_B.Calculate_I_term_n,
7273 &L4_MABX_DW.Calculate_I_term_n, &L4_MABX_P.Calculate_I_term_n);
7274 }
7275
7276 /* End of Disable for SubSystem: '<S238>/Calculate_I_term' */
7277
7278 /* Disable for Outport: '<S206>/PID_output' */
7279 L4_MABX_B.If_Then_Else_pi.Switch = L4_MABX_P.PID_output_Y0_c;
7280
7281 /* Disable for Outport: '<S206>/PID_output_unlim' */
7282 L4_MABX_B.Add_ds = L4_MABX_P.PID_output_unlim_Y0;
7283
7284 /* Disable for Outport: '<S206>/PID_control_error' */
7285 L4_MABX_B.If_Then_Else_k.Switch = L4_MABX_P.PID_control_error_Y0;
7286
7287 /* Disable for Outport: '<S206>/PID_p_term' */
7288 L4_MABX_B.Product_i = L4_MABX_P.PID_p_term_Y0;
7289
7290 /* Disable for Outport: '<S206>/PID_i_term' */
7291 L4_MABX_B.PID_i_term_c = L4_MABX_P.PID_i_term_Y0;
7292
7293 /* Disable for Outport: '<S206>/PID_d_term' */
7294 L4_MABX_B.PID_d_term_c = L4_MABX_P.PID_d_term_Y0;
7295
7296 /* Disable for Outport: '<S206>/PID_hold_i_term_f' */
7297 L4_MABX_B.PID_hold_i_term_f_b = L4_MABX_P.PID_hold_i_term_f_Y0;
7298 L4_MABX_DW.Throttle_controller_gov_MODE = false;
7299 }
7300 }
7301
7302 /* End of Outputs for SubSystem: '<S79>/Throttle_controller_gov' */
7303
7304 /* Switch: '<S79>/Switch' incorporates:
7305 * Constant: '<S79>/Constant3'
7306 */
7307 if (L4_MABX_B.F_Brake_control_active) {
7308 L4_MABX_B.ThrottlePID_Y_m = L4_MABX_P.Constant3_Value;
7309 } else {
7310 /* DataTypeConversion: '<S79>/Data Type Conversion3' */
7311 L4_MABX_B.DataTypeConversion3_m = L4_MABX_B.SPN544_EngineReferenceTorque;
7312
7313 /* Product: '<S79>/Product' incorporates:
7314 * Constant: '<S79>/Constant2'
7315 */
7316 L4_MABX_B.ThrottlePID_Y_c = L4_MABX_B.If_Then_Else_pi.Switch *
7317 L4_MABX_B.DataTypeConversion3_m * L4_MABX_P.Constant2_Value;
7318 L4_MABX_B.ThrottlePID_Y_m = L4_MABX_B.ThrottlePID_Y_c;
7319 }
7320
7321 /* End of Switch: '<S79>/Switch' */
7322
7323 /* MultiPortSwitch: '<S83>/Multiport Switch' incorporates:
7324 * Constant: '<S83>/APTC_DISABLED_PEDAL_POSITION_APV'
7325 * Constant: '<S83>/APTC_PEDAL_POS_SIG_SOURCE_APV'
7326 */
7327 switch (L4_MABX_P.APTC_PEDAL_POS_SIG_SOURCE_APV_V) {
7328 case ENUM_PEDAL_POS_SIGNAL_SOURCE_T_DISABLED:
7329 L4_MABX_B.MultiportSwitch = L4_MABX_P.APTC_DISABLED_PEDAL_POSITION_AP;
7330 break;
7331
7332 case ENUM_PEDAL_POS_SIGNAL_SOURCE_T_CAN_EEC2_00:
7333 L4_MABX_B.MultiportSwitch = L4_MABX_B.uDLookupTable;
7334 break;
7335
7336 case ENUM_PEDAL_POS_SIGNAL_SOURCE_T_SW_EMULATION:
7337 L4_MABX_B.MultiportSwitch = L4_MABX_B.ThrottlePID_Y_m;
7338 break;
7339
7340 case ENUM_PEDAL_POS_SIGNAL_SOURCE_T_CAN_EEC2_00_AND_SW_EMULATION:
7341 /* MinMax: '<S83>/MinMax' */
7342 DeltaTime = L4_MABX_B.uDLookupTable;
7343 PositionFinalLimited = L4_MABX_B.ThrottlePID_Y_m;
7344 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7345 PositionFinalLimited = DeltaTime;
7346 }
7347
7348 L4_MABX_B.MinMax_p = PositionFinalLimited;
7349
7350 /* End of MinMax: '<S83>/MinMax' */
7351 L4_MABX_B.MultiportSwitch = L4_MABX_B.MinMax_p;
7352 break;
7353
7354 default:
7355 L4_MABX_B.MultiportSwitch = L4_MABX_P.APTC_DISABLED_PEDAL_POSITION_AP;
7356 break;
7357 }
7358
7359 /* End of MultiPortSwitch: '<S83>/Multiport Switch' */
7360
7361 /* Outputs for Atomic SubSystem: '<S83>/If_Then_Else1' */
7362 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_dy, L4_MABX_B.uDLookupTable,
7363 L4_MABX_B.MultiportSwitch, &L4_MABX_B.If_Then_Else1_lw);
7364
7365 /* End of Outputs for SubSystem: '<S83>/If_Then_Else1' */
7366
7367 /* DataTypeConversion: '<S82>/Data Type Conversion1' */
7368 L4_MABX_B.DataTypeConversion1_n = L4_MABX_B.SFunction1_o5_aw;
7369
7370 /* Lookup_n-D: '<S85>/2D_Lookup_Table' */
7371 L4_MABX_B.uD_Lookup_Table = look2_binlcapw(L4_MABX_B.If_Then_Else1_lw.Switch,
7372 L4_MABX_B.DataTypeConversion1_n, APTC_TRQ_PED_INV_MAP_TRQ_STEPS,
7373 APTC_TRQ_PED_TRQ_ESPD_STEP_MPV, APTC_TRQ_PED_INV_MAP_PED_POS_MPV,
7374 L4_MABX_P.uD_Lookup_Table_maxIndex_h, 83U);
7375
7376 /* Logic: '<S82>/Logical Operator' */
7377 L4_MABX_B.LogicalOperator_j = !AutonomousEnabled;
7378
7379 /* Outputs for Atomic SubSystem: '<S82>/If_Then_Else' */
7380 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_j, Pedal_pwm_position,
7381 L4_MABX_B.uD_Lookup_Table, &L4_MABX_B.If_Then_Else_f);
7382
7383 /* End of Outputs for SubSystem: '<S82>/If_Then_Else' */
7384
7385 /* RelationalOperator: '<S75>/Relational Operator' incorporates:
7386 * Constant: '<S75>/Constant'
7387 */
7388 L4_MABX_B.APTC_arb_pedal_low_idl_sw_o = (APTC_PEDAL_LOW_IDLE_SW_THR_APV >
7389 L4_MABX_B.If_Then_Else_f.Switch);
7390
7391 /* DataTypeConversion: '<S84>/Data Type Conversion1' */
7392 L4_MABX_B.DataTypeConversion1_a = L4_MABX_B.SPN544_EngineReferenceTorque;
7393
7394 /* RelationalOperator: '<S89>/Relational Operator1' incorporates:
7395 * Constant: '<S84>/EngRefTqLimHigh'
7396 */
7397 L4_MABX_B.RelationalOperator1_i = (L4_MABX_B.DataTypeConversion1_a >=
7398 L4_MABX_P.EngRefTqLimHigh_Value);
7399
7400 /* RelationalOperator: '<S89>/Relational Operator' incorporates:
7401 * Constant: '<S84>/EngRefTqLimLow'
7402 */
7403 L4_MABX_B.RelationalOperator_c = (L4_MABX_B.DataTypeConversion1_a <=
7404 L4_MABX_P.EngRefTqLimLow_Value);
7405
7406 /* Outputs for Atomic SubSystem: '<S89>/If_Then_Else1' */
7407
7408 /* Constant: '<S84>/EngRefTqLimLow' */
7409 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_c,
7410 L4_MABX_P.EngRefTqLimLow_Value,
7411 L4_MABX_B.DataTypeConversion1_a,
7412 &L4_MABX_B.If_Then_Else1_lo);
7413
7414 /* End of Outputs for SubSystem: '<S89>/If_Then_Else1' */
7415
7416 /* Outputs for Atomic SubSystem: '<S89>/If_Then_Else' */
7417
7418 /* Constant: '<S84>/EngRefTqLimHigh' */
7419 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_i,
7420 L4_MABX_P.EngRefTqLimHigh_Value,
7421 L4_MABX_B.If_Then_Else1_lo.Switch,
7422 &L4_MABX_B.If_Then_Else_ff);
7423
7424 /* End of Outputs for SubSystem: '<S89>/If_Then_Else' */
7425
7426 /* Sum: '<S84>/Subtract' incorporates:
7427 * Constant: '<S84>/FrictionTrqAtRefTrqSpeed'
7428 */
7429 L4_MABX_B.Subtract_j = L4_MABX_B.If_Then_Else_ff.Switch -
7430 L4_MABX_P.FrictionTrqAtRefTrqSpeed_Value;
7431
7432 /* Product: '<S84>/Divide' incorporates:
7433 * Constant: '<S84>/Constant1'
7434 */
7435 L4_MABX_B.Divide_h = L4_MABX_B.If_Then_Else1_lw.Switch *
7436 L4_MABX_P.Constant1_Value_fg / L4_MABX_B.Subtract_j;
7437
7438 /* RelationalOperator: '<S90>/Relational Operator1' incorporates:
7439 * Constant: '<S84>/APPTqPercentMax'
7440 */
7441 L4_MABX_B.RelationalOperator1_a = (L4_MABX_B.Divide_h >=
7442 L4_MABX_P.APPTqPercentMax_Value);
7443
7444 /* RelationalOperator: '<S90>/Relational Operator' incorporates:
7445 * Constant: '<S84>/APPTqPercentMin'
7446 */
7447 L4_MABX_B.RelationalOperator_n = (L4_MABX_B.Divide_h <=
7448 L4_MABX_P.APPTqPercentMin_Value);
7449
7450 /* Outputs for Atomic SubSystem: '<S90>/If_Then_Else1' */
7451
7452 /* Constant: '<S84>/APPTqPercentMin' */
7453 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_n,
7454 L4_MABX_P.APPTqPercentMin_Value, L4_MABX_B.Divide_h,
7455 &L4_MABX_B.If_Then_Else1_p);
7456
7457 /* End of Outputs for SubSystem: '<S90>/If_Then_Else1' */
7458
7459 /* Outputs for Atomic SubSystem: '<S90>/If_Then_Else' */
7460
7461 /* Constant: '<S84>/APPTqPercentMax' */
7462 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_a,
7463 L4_MABX_P.APPTqPercentMax_Value,
7464 L4_MABX_B.If_Then_Else1_p.Switch,
7465 &L4_MABX_B.If_Then_Else_izl);
7466
7467 /* End of Outputs for SubSystem: '<S90>/If_Then_Else' */
7468
7469 /* MultiPortSwitch: '<S76>/Autonomous Mode Switch' incorporates:
7470 * Constant: '<S76>/AUTONOMOUS_MODE_SELECTOR_APV'
7471 * Constant: '<S76>/GhostMode'
7472 */
7473 if (AUTONOMOUS_MODE_SELECTOR_APV == ENUM_AUTONOMOUS_MODE_T_AUTO) {
7474 AutonomousOutputEnabled = L4_MABX_B.AND_l;
7475 } else {
7476 AutonomousOutputEnabled = (L4_MABX_P.GhostMode_Value != 0);
7477 }
7478
7479 /* End of MultiPortSwitch: '<S76>/Autonomous Mode Switch' */
7480
7481 /* Switch: '<S76>/Switch' incorporates:
7482 * Constant: '<S76>/Failure'
7483 * Constant: '<S76>/Running'
7484 */
7485 if (EStop) {
7486 tmp_1 = L4_MABX_P.Running_Value;
7487 if (tmp_1 < 0) {
7488 tmp_1 = 0;
7489 }
7490
7491 MABX_Mode = (uint8_T)tmp_1;
7492 } else {
7493 tmp_1 = L4_MABX_P.Failure_Value;
7494 if (tmp_1 < 0) {
7495 tmp_1 = 0;
7496 }
7497
7498 MABX_Mode = (uint8_T)tmp_1;
7499 }
7500
7501 /* End of Switch: '<S76>/Switch' */
7502
7503 /* DataTypeConversion: '<S98>/Data Type Conversion2' */
7504 PositionFinalLimited = floor(L4_MABX_B.SFunction1_o8_jt);
7505 if (rtIsNaN(PositionFinalLimited) || rtIsInf(PositionFinalLimited)) {
7506 PositionFinalLimited = 0.0;
7507 } else {
7508 PositionFinalLimited = fmod(PositionFinalLimited, 256.0);
7509 }
7510
7511 L4_MABX_B.DataTypeConversion2_ew = (uint8_T)(PositionFinalLimited < 0.0 ?
7512 (int32_T)(uint8_T)-(int8_T)(uint8_T)-PositionFinalLimited : (int32_T)
7513 (uint8_T)PositionFinalLimited);
7514
7515 /* End of DataTypeConversion: '<S98>/Data Type Conversion2' */
7516
7517 /* DataTypeConversion: '<S98>/Data Type Conversion' */
7518 L4_MABX_B.DataTypeConversion_lrn = (ENUM_SWITCH_T)
7519 L4_MABX_B.DataTypeConversion2_ew;
7520
7521 /* DataTypeConversion: '<S98>/Data Type Conversion3' */
7522 PositionFinalLimited = floor(L4_MABX_B.SFunction1_o4_kq);
7523 if (rtIsNaN(PositionFinalLimited) || rtIsInf(PositionFinalLimited)) {
7524 PositionFinalLimited = 0.0;
7525 } else {
7526 PositionFinalLimited = fmod(PositionFinalLimited, 256.0);
7527 }
7528
7529 L4_MABX_B.DataTypeConversion3_ps = (uint8_T)(PositionFinalLimited < 0.0 ?
7530 (int32_T)(uint8_T)-(int8_T)(uint8_T)-PositionFinalLimited : (int32_T)
7531 (uint8_T)PositionFinalLimited);
7532
7533 /* End of DataTypeConversion: '<S98>/Data Type Conversion3' */
7534
7535 /* DataTypeConversion: '<S98>/Data Type Conversion1' */
7536 L4_MABX_B.DataTypeConversion1_l = (ENUM_SWITCH_T)
7537 L4_MABX_B.DataTypeConversion3_ps;
7538
7539 /* RelationalOperator: '<S98>/Relational Operator3' incorporates:
7540 * Constant: '<S98>/CPV3'
7541 */
7542 L4_MABX_B.RelationalOperator3_c[0] = (L4_MABX_B.DataTypeConversion_lrn ==
7543 L4_MABX_P.CPV3_Value_p);
7544 L4_MABX_B.RelationalOperator3_c[1] = (L4_MABX_B.DataTypeConversion1_l ==
7545 L4_MABX_P.CPV3_Value_p);
7546
7547 /* Logic: '<S98>/Logical Operator4' */
7548 L4_MABX_B.LogicalOperator4_o = (L4_MABX_B.RelationalOperator3_c[0] &&
7549 L4_MABX_B.RelationalOperator3_c[1]);
7550
7551 /* Gain: '<S98>/Gain4' */
7552 L4_MABX_B.Primary_brake_circuit_pressure_ = L4_MABX_P.Gain4_Gain *
7553 L4_MABX_B.PressureP42;
7554
7555 /* Gain: '<S98>/Gain5' */
7556 L4_MABX_B.Secondary_brake_circuit_pressur = L4_MABX_P.Gain5_Gain *
7557 L4_MABX_B.PressureP4;
7558
7559 /* RelationalOperator: '<S98>/Relational Operator4' incorporates:
7560 * Constant: '<S98>/BRAKE_APPL_THRESHOLD_KPA_APV'
7561 */
7562 L4_MABX_B.RelationalOperator4[0] = (L4_MABX_B.Primary_brake_circuit_pressure_ >
7563 L4_MABX_P.BRAKE_APPL_THRESHOLD_KPA_APV_Va);
7564 L4_MABX_B.RelationalOperator4[1] = (L4_MABX_B.Secondary_brake_circuit_pressur >
7565 L4_MABX_P.BRAKE_APPL_THRESHOLD_KPA_APV_Va);
7566
7567 /* Logic: '<S98>/Logical Operator3' */
7568 L4_MABX_B.F_Service_brake_pressure_applie = (L4_MABX_B.RelationalOperator4[0] ||
7569 L4_MABX_B.RelationalOperator4[1]);
7570
7571 /* RelationalOperator: '<S98>/Relational Operator6' incorporates:
7572 * Constant: '<S98>/CPV4'
7573 */
7574 L4_MABX_B.RelationalOperator6[0] = (L4_MABX_B.DataTypeConversion_lrn ==
7575 L4_MABX_P.CPV4_Value_n);
7576 L4_MABX_B.RelationalOperator6[1] = (L4_MABX_B.DataTypeConversion1_l ==
7577 L4_MABX_P.CPV4_Value_n);
7578
7579 /* Logic: '<S98>/Logical Operator' */
7580 L4_MABX_B.F_Brake_sw_CAN = (L4_MABX_B.RelationalOperator6[0] ||
7581 L4_MABX_B.RelationalOperator6[1]);
7582
7583 /* Logic: '<S98>/Logical Operator5' */
7584 L4_MABX_B.LogicalOperator5_n = (L4_MABX_B.F_Service_brake_pressure_applie ||
7585 L4_MABX_B.F_Brake_sw_CAN);
7586
7587 /* Outputs for Atomic SubSystem: '<S98>/If_Then_Else' */
7588 L4_MABX_If_Then_Else_l(L4_MABX_B.LogicalOperator4_o,
7589 L4_MABX_B.F_Service_brake_pressure_applie, L4_MABX_B.LogicalOperator5_n,
7590 &L4_MABX_B.If_Then_Else_la);
7591
7592 /* End of Outputs for SubSystem: '<S98>/If_Then_Else' */
7593
7594 /* RelationalOperator: '<S102>/Relational Operator1' incorporates:
7595 * Constant: '<S102>/SPN904_ZERO_SPD_CPV'
7596 */
7597 L4_MABX_B.F_Vehicle_stopped = (L4_MABX_B.DataTypeConversion5_o <=
7598 L4_MABX_P.SPN904_ZERO_SPD_CPV_Value);
7599
7600 /* Sum: '<S99>/Add' */
7601 L4_MABX_B.Add_d = L4_MABX_B.Primary_brake_circuit_pressure_ +
7602 L4_MABX_B.Secondary_brake_circuit_pressur;
7603
7604 /* Gain: '<S99>/Gain' */
7605 L4_MABX_B.Gain_g = L4_MABX_P.Gain_Gain_g * L4_MABX_B.Add_d;
7606
7607 /* Outputs for Enabled SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' incorporates:
7608 * EnablePort: '<S178>/Enable'
7609 */
7610 if (L4_MABX_DW.Determine_shift_interlock_brake) {
7611 /* Disable for Outport: '<S178>/Shift_interlock_brake_press_target_kpa' */
7612 L4_MABX_B.If_Then_Else_il.Switch = L4_MABX_P.Shift_interlock_brake_press_tar;
7613
7614 /* Disable for Outport: '<S178>/F_Shift_interlock_conditions_met' */
7615 L4_MABX_B.F_Shift_interlock_conditions_me =
7616 L4_MABX_P.F_Shift_interlock_conditions_me;
7617 L4_MABX_DW.Determine_shift_interlock_brake = false;
7618 }
7619
7620 /* End of Outputs for SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' */
7621
7622 /* RelationalOperator: '<S200>/Compare' incorporates:
7623 * Constant: '<S200>/Constant'
7624 */
7625 L4_MABX_B.Compare_g4 = (L4_MABX_B.VSPD_TARGET_KPH_APV_g ==
7626 L4_MABX_P.Constant_Value_ol);
7627
7628 /* RelationalOperator: '<S103>/Relational Operator4' */
7629 L4_MABX_B.RelationalOperator4_l = (L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b >=
7630 L4_MABX_B.DataTypeConversion5_o);
7631
7632 /* Logic: '<S103>/Logical Operator3' */
7633 L4_MABX_B.F_Hold_brakes_at_zero_d = (L4_MABX_B.F_Brake_control_active &&
7634 L4_MABX_B.Compare_g4 && L4_MABX_B.RelationalOperator4_l);
7635
7636 /* Outputs for Enabled SubSystem: '<S99>/Determine_brake_hold_pressure_target' incorporates:
7637 * EnablePort: '<S177>/Enable'
7638 */
7639 if (L4_MABX_B.F_Hold_brakes_at_zero_d) {
7640 if (!L4_MABX_DW.Determine_brake_hold_pressure_t) {
7641 /* InitializeConditions for UnitDelay: '<S177>/Unit_Delay' */
7642 L4_MABX_DW.Unit_Delay_DSTATE_c = L4_MABX_P.Unit_Delay_InitialCondition_d;
7643
7644 /* InitializeConditions for UnitDelay: '<S181>/Unit_Delay' */
7645 L4_MABX_DW.Unit_Delay_DSTATE_or = L4_MABX_P.Unit_Delay_InitialCondition_fy;
7646
7647 /* InitializeConditions for UnitDelay: '<S185>/FixPt Unit Delay2' */
7648 L4_MABX_DW.FixPtUnitDelay2_DSTATE_je =
7649 L4_MABX_P.FixPtUnitDelay2_InitialCondit_e;
7650
7651 /* InitializeConditions for UnitDelay: '<S185>/FixPt Unit Delay1' */
7652 L4_MABX_DW.FixPtUnitDelay1_DSTATE_b0 =
7653 L4_MABX_P.FixPtUnitDelay1_InitialCondit_p;
7654
7655 /* InitializeConditions for UnitDelay: '<S182>/Unit_Delay' */
7656 L4_MABX_DW.Unit_Delay_DSTATE_oj = L4_MABX_P.Unit_Delay_InitialCondition_k;
7657 L4_MABX_DW.Determine_brake_hold_pressure_t = true;
7658 }
7659
7660 /* Logic: '<S177>/Logical Operator2' */
7661 L4_MABX_B.F_Brake_hold_conditions_met = (L4_MABX_B.If_Then_Else_la.Switch &&
7662 L4_MABX_B.F_Vehicle_stopped);
7663
7664 /* UnitDelay: '<S177>/Unit_Delay' */
7665 L4_MABX_B.Unit_Delay_a = L4_MABX_DW.Unit_Delay_DSTATE_c;
7666
7667 /* UnitDelay: '<S181>/Unit_Delay' */
7668 L4_MABX_B.Unit_Delay_h0 = L4_MABX_DW.Unit_Delay_DSTATE_or;
7669
7670 /* Logic: '<S181>/Logical Operator1' incorporates:
7671 * Constant: '<S177>/CPV1'
7672 */
7673 L4_MABX_B.LogicalOperator1_ou = (L4_MABX_P.CPV1_Value_p ||
7674 L4_MABX_B.Unit_Delay_h0);
7675
7676 /* Outputs for Atomic SubSystem: '<S177>/If_Then_Else1' */
7677
7678 /* Constant: '<S177>/CPV' */
7679 L4_MABX_If_Then_Else_g(L4_MABX_B.F_Brake_hold_conditions_met,
7680 L4_MABX_B.Unit_Delay_a, L4_MABX_P.CPV_Value_k, &L4_MABX_B.If_Then_Else1_mf);
7681
7682 /* End of Outputs for SubSystem: '<S177>/If_Then_Else1' */
7683
7684 /* UnitDelay: '<S185>/FixPt Unit Delay2' */
7685 L4_MABX_B.FixPtUnitDelay2_d = L4_MABX_DW.FixPtUnitDelay2_DSTATE_je;
7686
7687 /* UnitDelay: '<S185>/FixPt Unit Delay1' */
7688 L4_MABX_B.Xold_bf = L4_MABX_DW.FixPtUnitDelay1_DSTATE_b0;
7689
7690 /* Switch: '<S185>/Init' */
7691 if (L4_MABX_B.FixPtUnitDelay2_d != 0) {
7692 L4_MABX_B.Init_k = L4_MABX_B.If_Then_Else1_mf.Switch;
7693 } else {
7694 L4_MABX_B.Init_k = L4_MABX_B.Xold_bf;
7695 }
7696
7697 /* End of Switch: '<S185>/Init' */
7698
7699 /* Abs: '<S181>/Abs' incorporates:
7700 * Constant: '<S177>/BRAKE_PRESS_TARGET_S LEW_INC_APV'
7701 */
7702 L4_MABX_B.Abs_bu = fabs(L4_MABX_P.BRAKE_PRESS_TARGET_SLEW_INC_APV);
7703
7704 /* DigitalClock: '<S182>/Digital Clock' */
7705 L4_MABX_B.DigitalClock_c = L4_MABX_M->Timing.t[0];
7706
7707 /* UnitDelay: '<S182>/Unit_Delay' */
7708 L4_MABX_B.Unit_Delay_ka = L4_MABX_DW.Unit_Delay_DSTATE_oj;
7709
7710 /* Sum: '<S182>/Subtract' */
7711 L4_MABX_B.Subtract_ko = L4_MABX_B.DigitalClock_c - L4_MABX_B.Unit_Delay_ka;
7712
7713 /* Product: '<S181>/Product1' */
7714 L4_MABX_B.Product1_f = L4_MABX_B.Abs_bu * L4_MABX_B.Subtract_ko;
7715
7716 /* Sum: '<S181>/Add1' */
7717 L4_MABX_B.Add1_cj = L4_MABX_B.Init_k + L4_MABX_B.Product1_f;
7718
7719 /* MinMax: '<S181>/MinMax2' */
7720 DeltaTime = L4_MABX_B.If_Then_Else1_mf.Switch;
7721 PositionFinalLimited = L4_MABX_B.Add1_cj;
7722 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7723 PositionFinalLimited = DeltaTime;
7724 }
7725
7726 L4_MABX_B.MinMax2_c2 = PositionFinalLimited;
7727
7728 /* End of MinMax: '<S181>/MinMax2' */
7729
7730 /* Abs: '<S181>/Abs1' incorporates:
7731 * Constant: '<S177>/BRAKE_PRESS_TARGET_SLEW_DEC_APV'
7732 */
7733 L4_MABX_B.Abs1_ar = fabs(L4_MABX_P.BRAKE_PRESS_TARGET_SLEW_DEC_APV);
7734
7735 /* Product: '<S181>/Product2' */
7736 L4_MABX_B.Product2_c3 = L4_MABX_B.Subtract_ko * L4_MABX_B.Abs1_ar;
7737
7738 /* Sum: '<S181>/Subtract1' */
7739 L4_MABX_B.Subtract1_ev = L4_MABX_B.Init_k - L4_MABX_B.Product2_c3;
7740
7741 /* MinMax: '<S181>/MinMax1' */
7742 DeltaTime = L4_MABX_B.MinMax2_c2;
7743 PositionFinalLimited = L4_MABX_B.Subtract1_ev;
7744 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7745 PositionFinalLimited = DeltaTime;
7746 }
7747
7748 L4_MABX_B.MinMax1_jw = PositionFinalLimited;
7749
7750 /* End of MinMax: '<S181>/MinMax1' */
7751
7752 /* Outputs for Atomic SubSystem: '<S181>/If_Then_Else' */
7753 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_ou, L4_MABX_B.Gain_g,
7754 L4_MABX_B.MinMax1_jw, &L4_MABX_B.If_Then_Else_nz);
7755
7756 /* End of Outputs for SubSystem: '<S181>/If_Then_Else' */
7757
7758 /* Outputs for Atomic SubSystem: '<S177>/If_Then_Else' */
7759 L4_MABX_If_Then_Else_g(L4_MABX_B.F_Brake_hold_conditions_met,
7760 L4_MABX_B.Unit_Delay_a, L4_MABX_B.If_Then_Else_nz.Switch,
7761 &L4_MABX_B.If_Then_Else_gj);
7762
7763 /* End of Outputs for SubSystem: '<S177>/If_Then_Else' */
7764
7765 /* RelationalOperator: '<S183>/min_relop' incorporates:
7766 * Constant: '<S177>/BRAKE_PRESS_TARGET_S LEW_INC_APV'
7767 * Constant: '<S183>/min_val'
7768 */
7769 L4_MABX_B.min_relop_i = (L4_MABX_P.CheckStaticLowerBound_min_i <=
7770 L4_MABX_P.BRAKE_PRESS_TARGET_SLEW_INC_APV);
7771
7772 /* Assertion: '<S183>/Assertion' */
7773 utAssert(L4_MABX_B.min_relop_i);
7774 } else {
7775 if (L4_MABX_DW.Determine_brake_hold_pressure_t) {
7776 /* Disable for Outport: '<S177>/Brake_hold_brake_press_target_kpa' */
7777 L4_MABX_B.If_Then_Else_gj.Switch =
7778 L4_MABX_P.Brake_hold_brake_press_target_k;
7779
7780 /* Disable for Outport: '<S177>/F_Brake_hold_conditions_met' */
7781 L4_MABX_B.F_Brake_hold_conditions_met =
7782 L4_MABX_P.F_Brake_hold_conditions_met_Y0;
7783 L4_MABX_DW.Determine_brake_hold_pressure_t = false;
7784 }
7785 }
7786
7787 /* End of Outputs for SubSystem: '<S99>/Determine_brake_hold_pressure_target' */
7788
7789 /* MinMax: '<S99>/MinMax' */
7790 DeltaTime = L4_MABX_B.If_Then_Else_il.Switch;
7791 PositionFinalLimited = L4_MABX_B.If_Then_Else_gj.Switch;
7792 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7793 PositionFinalLimited = DeltaTime;
7794 }
7795
7796 L4_MABX_B.Brake_pressure_target_kpa = PositionFinalLimited;
7797
7798 /* End of MinMax: '<S99>/MinMax' */
7799
7800 /* Gain: '<S98>/Gain1' */
7801 L4_MABX_B.Bendix_2C2_Primary_brake_circui = L4_MABX_P.Gain1_Gain *
7802 L4_MABX_B.PressureP21;
7803
7804 /* Gain: '<S98>/Gain2' */
7805 L4_MABX_B.Bendix_2C2_Secondary_brake_circ = L4_MABX_P.Gain2_Gain *
7806 L4_MABX_B.PressureP22;
7807
7808 /* Sum: '<S100>/Add' */
7809 L4_MABX_B.Add_n = L4_MABX_B.Primary_brake_circuit_pressure_ +
7810 L4_MABX_B.Secondary_brake_circuit_pressur;
7811
7812 /* Gain: '<S100>/Gain' */
7813 L4_MABX_B.brake_system_avg_appl_pressure_ = L4_MABX_P.Gain_Gain_i *
7814 L4_MABX_B.Add_n;
7815
7816 /* Gain: '<S98>/Gain3' */
7817 L4_MABX_B.Primary_brake_circuit_pressur_n = L4_MABX_P.Gain3_Gain *
7818 L4_MABX_B.PressureP1;
7819
7820 /* Product: '<S100>/Divide2' */
7821 L4_MABX_B.Divide2 = L4_MABX_B.brake_system_avg_appl_pressure_ /
7822 L4_MABX_B.Primary_brake_circuit_pressur_n;
7823
7824 /* Gain: '<S100>/Gain5' */
7825 L4_MABX_B.Gain5 = L4_MABX_P.Gain5_Gain_l * L4_MABX_B.Divide2;
7826
7827 /* Saturate: '<S100>/Saturation3' */
7828 DeltaTime = L4_MABX_B.Gain5;
7829 Time56 = L4_MABX_P.Saturation3_LowerSat;
7830 PositionFinalLimited = L4_MABX_P.Saturation3_UpperSat;
7831 if (DeltaTime > PositionFinalLimited) {
7832 L4_MABX_B.Brake_appl_percent = PositionFinalLimited;
7833 } else if (DeltaTime < Time56) {
7834 L4_MABX_B.Brake_appl_percent = Time56;
7835 } else {
7836 L4_MABX_B.Brake_appl_percent = DeltaTime;
7837 }
7838
7839 /* End of Saturate: '<S100>/Saturation3' */
7840
7841 /* Outputs for Enabled SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' incorporates:
7842 * EnablePort: '<S96>/Enable'
7843 */
7844 if (L4_MABX_B.F_Hold_brakes_at_zero_d) {
7845 if (!L4_MABX_DW.Bendix_2C2_brake_application_pr) {
7846 /* InitializeConditions for UnitDelay: '<S105>/Unit_Delay' */
7847 L4_MABX_DW.Unit_Delay_DSTATE_d = L4_MABX_P.Unit_Delay_InitialCondition;
7848
7849 /* InitializeConditions for UnitDelay: '<S109>/Unit_Delay' */
7850 L4_MABX_DW.Unit_Delay_DSTATE_omj =
7851 L4_MABX_P.Unit_Delay_InitialCondition_lt;
7852
7853 /* InitializeConditions for UnitDelay: '<S129>/Unit_Delay1' */
7854 L4_MABX_DW.Unit_Delay1_DSTATE_b = L4_MABX_P.Unit_Delay1_InitialCondition;
7855
7856 /* InitializeConditions for UnitDelay: '<S130>/Unit_Delay' */
7857 L4_MABX_DW.Unit_Delay_DSTATE_h4 = L4_MABX_P.Unit_Delay_InitialCondition_og;
7858
7859 /* InitializeConditions for UnitDelay: '<S134>/FixPt Unit Delay2' */
7860 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gm =
7861 L4_MABX_P.FixPtUnitDelay2_InitialConditio;
7862
7863 /* InitializeConditions for UnitDelay: '<S134>/FixPt Unit Delay1' */
7864 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g1 =
7865 L4_MABX_P.FixPtUnitDelay1_InitialConditio;
7866
7867 /* InitializeConditions for UnitDelay: '<S129>/Unit_Delay2' */
7868 L4_MABX_DW.Unit_Delay2_DSTATE_dy = L4_MABX_P.Unit_Delay2_InitialCondition;
7869
7870 /* InitializeConditions for UnitDelay: '<S104>/Unit_Delay' */
7871 L4_MABX_DW.Unit_Delay_DSTATE_i = L4_MABX_P.Unit_Delay_InitialCondition_p;
7872 L4_MABX_DW.Bendix_2C2_brake_application_pr = true;
7873 }
7874
7875 /* Sum: '<S96>/Add' */
7876 L4_MABX_B.Add_my = L4_MABX_B.Bendix_2C2_Primary_brake_circui +
7877 L4_MABX_B.Bendix_2C2_Secondary_brake_circ;
7878
7879 /* Gain: '<S96>/Gain' */
7880 L4_MABX_B.Gain_i = L4_MABX_P.Gain_Gain * L4_MABX_B.Add_my;
7881
7882 /* Abs: '<S106>/Abs' incorporates:
7883 * Constant: '<S96>/BRK_PRESS_DEM_KI_APV'
7884 */
7885 L4_MABX_B.Abs_k4 = fabs(L4_MABX_P.BRK_PRESS_DEM_KI_APV_Value);
7886
7887 /* Abs: '<S106>/Abs1' incorporates:
7888 * Constant: '<S96>/BRK_PRESS_DEM_KD_APV'
7889 */
7890 L4_MABX_B.Abs1_ap = fabs(L4_MABX_P.BRK_PRESS_DEM_KD_APV_Value);
7891
7892 /* DigitalClock: '<S105>/Digital Clock' */
7893 L4_MABX_B.DigitalClock_j = L4_MABX_M->Timing.t[0];
7894
7895 /* UnitDelay: '<S105>/Unit_Delay' */
7896 L4_MABX_B.Unit_Delay_j = L4_MABX_DW.Unit_Delay_DSTATE_d;
7897
7898 /* Sum: '<S105>/Subtract' */
7899 L4_MABX_B.Subtract_jr = L4_MABX_B.DigitalClock_j - L4_MABX_B.Unit_Delay_j;
7900
7901 /* UnitDelay: '<S109>/Unit_Delay' */
7902 L4_MABX_B.Unit_Delay_nm = L4_MABX_DW.Unit_Delay_DSTATE_omj;
7903
7904 /* Logic: '<S109>/Logical Operator1' incorporates:
7905 * Constant: '<S96>/CPV2'
7906 */
7907 L4_MABX_B.LogicalOperator1_ax = (L4_MABX_B.Unit_Delay_nm ||
7908 L4_MABX_P.CPV2_Value_m);
7909
7910 /* UnitDelay: '<S129>/Unit_Delay1' */
7911 L4_MABX_B.Unit_Delay1_i = L4_MABX_DW.Unit_Delay1_DSTATE_b;
7912
7913 /* Logic: '<S129>/Logical Operator' */
7914 L4_MABX_B.LogicalOperator_mu = (L4_MABX_B.LogicalOperator1_ax ||
7915 L4_MABX_B.Unit_Delay1_i);
7916
7917 /* UnitDelay: '<S130>/Unit_Delay' */
7918 L4_MABX_B.Unit_Delay_nl = L4_MABX_DW.Unit_Delay_DSTATE_h4;
7919
7920 /* Logic: '<S130>/Logical Operator1' */
7921 L4_MABX_B.LogicalOperator1_mk = (L4_MABX_B.LogicalOperator1_ax ||
7922 L4_MABX_B.Unit_Delay_nl);
7923
7924 /* UnitDelay: '<S134>/FixPt Unit Delay2' */
7925 L4_MABX_B.FixPtUnitDelay2_op = L4_MABX_DW.FixPtUnitDelay2_DSTATE_gm;
7926
7927 /* UnitDelay: '<S134>/FixPt Unit Delay1' */
7928 L4_MABX_B.Xold_g34 = L4_MABX_DW.FixPtUnitDelay1_DSTATE_g1;
7929
7930 /* Switch: '<S134>/Init' */
7931 if (L4_MABX_B.FixPtUnitDelay2_op != 0) {
7932 L4_MABX_B.Init_hw = L4_MABX_B.Brake_pressure_target_kpa;
7933 } else {
7934 L4_MABX_B.Init_hw = L4_MABX_B.Xold_g34;
7935 }
7936
7937 /* End of Switch: '<S134>/Init' */
7938
7939 /* Abs: '<S130>/Abs' incorporates:
7940 * Constant: '<S96>/CPV4'
7941 */
7942 L4_MABX_B.Abs_lt = fabs(L4_MABX_P.CPV4_Value);
7943
7944 /* Product: '<S130>/Product1' */
7945 L4_MABX_B.Product1_b = L4_MABX_B.Abs_lt * L4_MABX_B.Subtract_jr;
7946
7947 /* Sum: '<S130>/Add1' */
7948 L4_MABX_B.Add1_hu = L4_MABX_B.Init_hw + L4_MABX_B.Product1_b;
7949
7950 /* MinMax: '<S130>/MinMax2' */
7951 DeltaTime = L4_MABX_B.Brake_pressure_target_kpa;
7952 PositionFinalLimited = L4_MABX_B.Add1_hu;
7953 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7954 PositionFinalLimited = DeltaTime;
7955 }
7956
7957 L4_MABX_B.MinMax2_b = PositionFinalLimited;
7958
7959 /* End of MinMax: '<S130>/MinMax2' */
7960
7961 /* Abs: '<S130>/Abs1' incorporates:
7962 * Constant: '<S96>/CPV5'
7963 */
7964 L4_MABX_B.Abs1_d1 = fabs(L4_MABX_P.CPV5_Value);
7965
7966 /* Product: '<S130>/Product2' */
7967 L4_MABX_B.Product2_d = L4_MABX_B.Subtract_jr * L4_MABX_B.Abs1_d1;
7968
7969 /* Sum: '<S130>/Subtract1' */
7970 L4_MABX_B.Subtract1_a = L4_MABX_B.Init_hw - L4_MABX_B.Product2_d;
7971
7972 /* MinMax: '<S130>/MinMax1' */
7973 DeltaTime = L4_MABX_B.MinMax2_b;
7974 PositionFinalLimited = L4_MABX_B.Subtract1_a;
7975 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7976 PositionFinalLimited = DeltaTime;
7977 }
7978
7979 L4_MABX_B.MinMax1_ps = PositionFinalLimited;
7980
7981 /* End of MinMax: '<S130>/MinMax1' */
7982
7983 /* Outputs for Atomic SubSystem: '<S130>/If_Then_Else' */
7984 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_mk, L4_MABX_B.Gain_i,
7985 L4_MABX_B.MinMax1_ps, &L4_MABX_B.If_Then_Else_bg);
7986
7987 /* End of Outputs for SubSystem: '<S130>/If_Then_Else' */
7988
7989 /* Sum: '<S107>/Subtract' */
7990 L4_MABX_B.Subtract_n = L4_MABX_B.If_Then_Else_bg.Switch - L4_MABX_B.Gain_i;
7991
7992 /* MinMax: '<S129>/MinMax1' incorporates:
7993 * Constant: '<S96>/BRK_PRESS_DEM_T_FILT_CTRL_ERROR_APV'
7994 */
7995 DeltaTime = L4_MABX_B.Subtract_jr;
7996 PositionFinalLimited = L4_MABX_P.BRK_PRESS_DEM_T_FILT_CTRL_ERROR;
7997 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7998 PositionFinalLimited = DeltaTime;
7999 }
8000
8001 L4_MABX_B.MinMax1_h1 = PositionFinalLimited;
8002
8003 /* End of MinMax: '<S129>/MinMax1' */
8004
8005 /* Saturate: '<S129>/Saturation' */
8006 DeltaTime = L4_MABX_B.MinMax1_h1;
8007 Time56 = L4_MABX_P.Saturation_LowerSat;
8008 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat;
8009 if (DeltaTime > PositionFinalLimited) {
8010 L4_MABX_B.Saturation_p = PositionFinalLimited;
8011 } else if (DeltaTime < Time56) {
8012 L4_MABX_B.Saturation_p = Time56;
8013 } else {
8014 L4_MABX_B.Saturation_p = DeltaTime;
8015 }
8016
8017 /* End of Saturate: '<S129>/Saturation' */
8018
8019 /* Product: '<S129>/Divide' */
8020 L4_MABX_B.Divide_l = L4_MABX_B.Subtract_jr / L4_MABX_B.Saturation_p;
8021
8022 /* Product: '<S129>/Product2' */
8023 L4_MABX_B.Product2_kj = L4_MABX_B.Subtract_n * L4_MABX_B.Divide_l;
8024
8025 /* Sum: '<S129>/Subtract1' incorporates:
8026 * Constant: '<S129>/Constant1'
8027 */
8028 L4_MABX_B.Subtract1_p = L4_MABX_P.Constant1_Value - L4_MABX_B.Divide_l;
8029
8030 /* UnitDelay: '<S129>/Unit_Delay2' */
8031 L4_MABX_B.Unit_Delay2_d = L4_MABX_DW.Unit_Delay2_DSTATE_dy;
8032
8033 /* Product: '<S129>/Product1' */
8034 L4_MABX_B.Product1_c3 = L4_MABX_B.Subtract1_p * L4_MABX_B.Unit_Delay2_d;
8035
8036 /* Sum: '<S129>/Add1' */
8037 L4_MABX_B.Add1_i1 = L4_MABX_B.Product2_kj + L4_MABX_B.Product1_c3;
8038
8039 /* Outputs for Atomic SubSystem: '<S129>/If_Then_Else' */
8040 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_mu, L4_MABX_B.Subtract_n,
8041 L4_MABX_B.Add1_i1, &L4_MABX_B.If_Then_Else_ly);
8042
8043 /* End of Outputs for SubSystem: '<S129>/If_Then_Else' */
8044
8045 /* RelationalOperator: '<S114>/Compare' incorporates:
8046 * Constant: '<S114>/Constant'
8047 */
8048 L4_MABX_B.Compare_aa = (L4_MABX_B.Abs1_ap >
8049 L4_MABX_P.CompareToConstant1_const);
8050
8051 /* Outputs for Enabled SubSystem: '<S106>/Calculate_D_term' */
8052
8053 /* Constant: '<S96>/BRK_PRESS_DEM_KD_APV' incorporates:
8054 * Constant: '<S96>/BRK_PRESS_DEM_T_FILT_D_APV'
8055 */
8056 L4_MABX_Calculate_D_term(L4_MABX_B.Compare_aa,
8057 L4_MABX_P.BRK_PRESS_DEM_KD_APV_Value, L4_MABX_B.Subtract_jr,
8058 L4_MABX_B.LogicalOperator1_ax, L4_MABX_B.If_Then_Else_ly.Switch,
8059 L4_MABX_P.BRK_PRESS_DEM_T_FILT_D_APV_Valu, &L4_MABX_B.Calculate_D_term,
8060 &L4_MABX_DW.Calculate_D_term, &L4_MABX_P.Calculate_D_term);
8061
8062 /* End of Outputs for SubSystem: '<S106>/Calculate_D_term' */
8063
8064 /* Product: '<S112>/Product' incorporates:
8065 * Constant: '<S96>/BRK_PRESS_DEM_KP_APV'
8066 */
8067 L4_MABX_B.Product_iq = L4_MABX_P.BRK_PRESS_DEM_KP_APV_Value *
8068 L4_MABX_B.If_Then_Else_ly.Switch;
8069
8070 /* UnitDelay: '<S104>/Unit_Delay' */
8071 L4_MABX_B.Unit_Delay_ja = L4_MABX_DW.Unit_Delay_DSTATE_i;
8072
8073 /* RelationalOperator: '<S113>/Compare' incorporates:
8074 * Constant: '<S113>/Constant'
8075 */
8076 L4_MABX_B.Compare_jrp = (L4_MABX_B.Abs_k4 >
8077 L4_MABX_P.CompareToConstant_const);
8078
8079 /* Outputs for Enabled SubSystem: '<S106>/Calculate_I_term' */
8080
8081 /* Constant: '<S96>/BRK_PRESS_DEM_KI_APV' incorporates:
8082 * Constant: '<S96>/BRK_PRESS_DEM_AW_COND_INT_APV'
8083 * Constant: '<S96>/BRK_PRESS_DEM_AW_HYSTERESIS_APV'
8084 * Constant: '<S96>/CPV1'
8085 * Constant: '<S96>/CPV3'
8086 */
8087 L4_MABX_Calculate_I_term(L4_MABX_B.Compare_jrp, L4_MABX_B.Product_iq,
8088 L4_MABX_P.BRK_PRESS_DEM_KI_APV_Value, L4_MABX_B.Brake_appl_percent,
8089 L4_MABX_B.If_Then_Else_ly.Switch, L4_MABX_B.LogicalOperator1_ax,
8090 L4_MABX_B.Subtract_jr, L4_MABX_P.CPV3_Value,
8091 L4_MABX_P.BRK_PRESS_DEM_AW_COND_INT_APV_V,
8092 L4_MABX_P.BRK_PRESS_DEM_AW_HYSTERESIS_APV, L4_MABX_P.CPV1_Value_g,
8093 L4_MABX_B.Unit_Delay_ja, &L4_MABX_B.Calculate_I_term,
8094 &L4_MABX_DW.Calculate_I_term, &L4_MABX_P.Calculate_I_term);
8095
8096 /* End of Outputs for SubSystem: '<S106>/Calculate_I_term' */
8097
8098 /* RelationalOperator: '<S132>/min_relop' incorporates:
8099 * Constant: '<S132>/min_val'
8100 * Constant: '<S96>/CPV4'
8101 */
8102 L4_MABX_B.min_relop_ph = (L4_MABX_P.CheckStaticLowerBound_min <=
8103 L4_MABX_P.CPV4_Value);
8104
8105 /* Assertion: '<S132>/Assertion' */
8106 utAssert(L4_MABX_B.min_relop_ph);
8107
8108 /* Sum: '<S108>/Add' incorporates:
8109 * Constant: '<S96>/CPV3'
8110 */
8111 L4_MABX_B.Add_e = ((L4_MABX_B.Product_iq +
8112 L4_MABX_B.Calculate_I_term.If_Then_Else.Switch) +
8113 L4_MABX_B.Calculate_D_term.Subtract) +
8114 L4_MABX_P.CPV3_Value;
8115
8116 /* RelationalOperator: '<S135>/Relational Operator1' incorporates:
8117 * Constant: '<S96>/CPV6'
8118 */
8119 L4_MABX_B.RelationalOperator1_gi = (L4_MABX_B.Add_e >= L4_MABX_P.CPV6_Value);
8120
8121 /* RelationalOperator: '<S135>/Relational Operator' incorporates:
8122 * Constant: '<S96>/CPV'
8123 */
8124 L4_MABX_B.RelationalOperator_ba = (L4_MABX_B.Add_e <= L4_MABX_P.CPV_Value);
8125
8126 /* Outputs for Atomic SubSystem: '<S135>/If_Then_Else1' */
8127
8128 /* Constant: '<S96>/CPV' */
8129 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_ba, L4_MABX_P.CPV_Value,
8130 L4_MABX_B.Add_e, &L4_MABX_B.If_Then_Else1_b);
8131
8132 /* End of Outputs for SubSystem: '<S135>/If_Then_Else1' */
8133
8134 /* Outputs for Atomic SubSystem: '<S135>/If_Then_Else' */
8135
8136 /* Constant: '<S96>/CPV6' */
8137 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_gi, L4_MABX_P.CPV6_Value,
8138 L4_MABX_B.If_Then_Else1_b.Switch,
8139 &L4_MABX_B.If_Then_Else_nj);
8140
8141 /* End of Outputs for SubSystem: '<S135>/If_Then_Else' */
8142 } else {
8143 if (L4_MABX_DW.Bendix_2C2_brake_application_pr) {
8144 /* Disable for Enabled SubSystem: '<S106>/Calculate_D_term' */
8145 if (L4_MABX_DW.Calculate_D_term.Calculate_D_term_MODE) {
8146 L4_Calculate_D_term_Disable(&L4_MABX_B.Calculate_D_term,
8147 &L4_MABX_DW.Calculate_D_term, &L4_MABX_P.Calculate_D_term);
8148 }
8149
8150 /* End of Disable for SubSystem: '<S106>/Calculate_D_term' */
8151
8152 /* Disable for Enabled SubSystem: '<S106>/Calculate_I_term' */
8153 if (L4_MABX_DW.Calculate_I_term.Calculate_I_term_MODE) {
8154 L4_Calculate_I_term_Disable(&L4_MABX_B.Calculate_I_term,
8155 &L4_MABX_DW.Calculate_I_term, &L4_MABX_P.Calculate_I_term);
8156 }
8157
8158 /* End of Disable for SubSystem: '<S106>/Calculate_I_term' */
8159
8160 /* Disable for Outport: '<S96>/PID_output' */
8161 L4_MABX_B.If_Then_Else_nj.Switch = L4_MABX_P.PID_output_Y0;
8162 L4_MABX_DW.Bendix_2C2_brake_application_pr = false;
8163 }
8164 }
8165
8166 /* End of Outputs for SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
8167
8168 /* RelationalOperator: '<S374>/Compare' incorporates:
8169 * Constant: '<S374>/Constant'
8170 */
8171 L4_MABX_B.Compare_ey = (L4_MABX_B.SFunction1_o4_ne ==
8172 L4_MABX_P.CompareToConstant9_const);
8173
8174 /* RelationalOperator: '<S371>/Compare' incorporates:
8175 * Constant: '<S371>/Constant'
8176 */
8177 L4_MABX_B.Compare_j = (L4_MABX_B.SFunction1_o5_p ==
8178 L4_MABX_P.CompareToConstant10_const);
8179
8180 /* RelationalOperator: '<S372>/Compare' incorporates:
8181 * Constant: '<S372>/Constant'
8182 */
8183 L4_MABX_B.Compare_hc = (L4_MABX_B.SFunction1_o6_e ==
8184 L4_MABX_P.CompareToConstant11_const);
8185
8186 /* RelationalOperator: '<S373>/Compare' incorporates:
8187 * Constant: '<S373>/Constant'
8188 */
8189 L4_MABX_B.Compare_b = (L4_MABX_B.SFunction1_o7_l ==
8190 L4_MABX_P.CompareToConstant12_const);
8191
8192 /* Logic: '<S334>/Logical Operator2' */
8193 L4_MABX_B.LogicalOperator2_f = (L4_MABX_B.Compare_ey || L4_MABX_B.Compare_j ||
8194 L4_MABX_B.Compare_hc || L4_MABX_B.Compare_b);
8195
8196 /* UnitDelay: '<S376>/Unit_Delay' */
8197 L4_MABX_B.Unit_Delay_ot = L4_MABX_DW.Unit_Delay_DSTATE_cx;
8198
8199 /* Logic: '<S376>/Logical Operator1' */
8200 L4_MABX_B.LogicalOperator1_jo = !L4_MABX_B.Unit_Delay_ot;
8201
8202 /* Logic: '<S376>/Logical Operator' */
8203 L4_MABX_B.LogicalOperator_fl = (L4_MABX_B.LogicalOperator2_f &&
8204 L4_MABX_B.LogicalOperator1_jo);
8205
8206 /* UnitDelay: '<S377>/Unit_Delay' */
8207 L4_MABX_B.Unit_Delay_jz = L4_MABX_DW.Unit_Delay_DSTATE_d0;
8208
8209 /* Logic: '<S377>/Logical Operator1' */
8210 L4_MABX_B.LogicalOperator1_a = (L4_MABX_B.LogicalOperator_fl ||
8211 L4_MABX_B.Unit_Delay_jz);
8212
8213 /* UnitDelay: '<S334>/Unit_Delay' */
8214 L4_MABX_B.Unit_Delay_k4 = L4_MABX_DW.Unit_Delay_DSTATE_e;
8215
8216 /* MinMax: '<S334>/MinMax' */
8217 DeltaTime = L4_MABX_B.Unit_Delay_k4;
8218 PositionFinalLimited = L4_MABX_B.SFunction1_o1_c4;
8219 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8220 PositionFinalLimited = DeltaTime;
8221 }
8222
8223 L4_MABX_B.MinMax_d = PositionFinalLimited;
8224
8225 /* End of MinMax: '<S334>/MinMax' */
8226
8227 /* Outputs for Atomic SubSystem: '<S334>/If_Then_Else4' */
8228
8229 /* Constant: '<S334>/STABILITY_ACTIVE_VSPD_TARGET_APV' incorporates:
8230 * Constant: '<S334>/Constant4'
8231 */
8232 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator2_f,
8233 L4_MABX_P.STABILITY_ACTIVE_VSPD_TARGET_AP,
8234 L4_MABX_P.Constant4_Value_n, &L4_MABX_B.If_Then_Else4_h);
8235
8236 /* End of Outputs for SubSystem: '<S334>/If_Then_Else4' */
8237
8238 /* UnitDelay: '<S381>/FixPt Unit Delay2' */
8239 L4_MABX_B.FixPtUnitDelay2_b2 = L4_MABX_DW.FixPtUnitDelay2_DSTATE_a;
8240
8241 /* UnitDelay: '<S381>/FixPt Unit Delay1' */
8242 L4_MABX_B.Xold_hq = L4_MABX_DW.FixPtUnitDelay1_DSTATE_h;
8243
8244 /* Switch: '<S381>/Init' */
8245 if (L4_MABX_B.FixPtUnitDelay2_b2 != 0) {
8246 L4_MABX_B.Init_i = L4_MABX_B.If_Then_Else4_h.Switch;
8247 } else {
8248 L4_MABX_B.Init_i = L4_MABX_B.Xold_hq;
8249 }
8250
8251 /* End of Switch: '<S381>/Init' */
8252
8253 /* Abs: '<S377>/Abs' incorporates:
8254 * Constant: '<S334>/STABILITY_CTRL_SLEW_INC_APV'
8255 */
8256 L4_MABX_B.Abs_e = fabs(L4_MABX_P.STABILITY_CTRL_SLEW_INC_APV_Val);
8257
8258 /* DigitalClock: '<S378>/Digital Clock' */
8259 L4_MABX_B.DigitalClock = L4_MABX_M->Timing.t[0];
8260
8261 /* UnitDelay: '<S378>/Unit_Delay' */
8262 L4_MABX_B.Unit_Delay_d = L4_MABX_DW.Unit_Delay_DSTATE_m;
8263
8264 /* Sum: '<S378>/Subtract' */
8265 L4_MABX_B.Subtract_l = L4_MABX_B.DigitalClock - L4_MABX_B.Unit_Delay_d;
8266
8267 /* Product: '<S377>/Product1' */
8268 L4_MABX_B.Product1_hp = L4_MABX_B.Abs_e * L4_MABX_B.Subtract_l;
8269
8270 /* Sum: '<S377>/Add1' */
8271 L4_MABX_B.Add1_nd = L4_MABX_B.Init_i + L4_MABX_B.Product1_hp;
8272
8273 /* MinMax: '<S377>/MinMax2' */
8274 DeltaTime = L4_MABX_B.If_Then_Else4_h.Switch;
8275 PositionFinalLimited = L4_MABX_B.Add1_nd;
8276 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8277 PositionFinalLimited = DeltaTime;
8278 }
8279
8280 L4_MABX_B.MinMax2_g = PositionFinalLimited;
8281
8282 /* End of MinMax: '<S377>/MinMax2' */
8283
8284 /* Abs: '<S377>/Abs1' incorporates:
8285 * Constant: '<S334>/STABILITY_CTRL_SLEW_DEC_APV'
8286 */
8287 L4_MABX_B.Abs1_h = fabs(L4_MABX_P.STABILITY_CTRL_SLEW_DEC_APV_Val);
8288
8289 /* Product: '<S377>/Product2' */
8290 L4_MABX_B.Product2_c = L4_MABX_B.Subtract_l * L4_MABX_B.Abs1_h;
8291
8292 /* Sum: '<S377>/Subtract1' */
8293 L4_MABX_B.Subtract1_n = L4_MABX_B.Init_i - L4_MABX_B.Product2_c;
8294
8295 /* MinMax: '<S377>/MinMax1' */
8296 DeltaTime = L4_MABX_B.MinMax2_g;
8297 PositionFinalLimited = L4_MABX_B.Subtract1_n;
8298 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8299 PositionFinalLimited = DeltaTime;
8300 }
8301
8302 L4_MABX_B.MinMax1_hj = PositionFinalLimited;
8303
8304 /* End of MinMax: '<S377>/MinMax1' */
8305
8306 /* Outputs for Atomic SubSystem: '<S377>/If_Then_Else' */
8307 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_a, L4_MABX_B.MinMax_d,
8308 L4_MABX_B.MinMax1_hj, &L4_MABX_B.If_Then_Else_m4);
8309
8310 /* End of Outputs for SubSystem: '<S377>/If_Then_Else' */
8311
8312 /* RelationalOperator: '<S362>/Compare' incorporates:
8313 * Constant: '<S362>/Constant'
8314 */
8315 L4_MABX_B.Compare_d = (L4_MABX_B.ACCDistanceAlertSignal ==
8316 L4_MABX_P.CompareToConstant3_const);
8317
8318 /* RelationalOperator: '<S363>/Compare' incorporates:
8319 * Constant: '<S363>/Constant'
8320 */
8321 L4_MABX_B.Compare_dv = (L4_MABX_B.ForwardCollisionWarning ==
8322 L4_MABX_P.CompareToConstant8_const);
8323
8324 /* Logic: '<S332>/Logical Operator1' */
8325 L4_MABX_B.LogicalOperator1_gm = (L4_MABX_B.Compare_d || L4_MABX_B.Compare_dv);
8326
8327 /* UnitDelay: '<S365>/Unit_Delay' */
8328 L4_MABX_B.Unit_Delay_h = L4_MABX_DW.Unit_Delay_DSTATE_iy;
8329
8330 /* Logic: '<S365>/Logical Operator1' */
8331 L4_MABX_B.LogicalOperator1_jp = !L4_MABX_B.Unit_Delay_h;
8332
8333 /* Logic: '<S365>/Logical Operator' */
8334 L4_MABX_B.LogicalOperator_kf = (L4_MABX_B.LogicalOperator1_gm &&
8335 L4_MABX_B.LogicalOperator1_jp);
8336
8337 /* UnitDelay: '<S366>/Unit_Delay' */
8338 L4_MABX_B.Unit_Delay_c4v = L4_MABX_DW.Unit_Delay_DSTATE_mv;
8339
8340 /* Logic: '<S366>/Logical Operator1' */
8341 L4_MABX_B.LogicalOperator1_l4 = (L4_MABX_B.LogicalOperator_kf ||
8342 L4_MABX_B.Unit_Delay_c4v);
8343
8344 /* UnitDelay: '<S332>/Unit_Delay' */
8345 L4_MABX_B.Unit_Delay_n = L4_MABX_DW.Unit_Delay_DSTATE_g;
8346
8347 /* MinMax: '<S332>/MinMax' */
8348 DeltaTime = L4_MABX_B.Unit_Delay_n;
8349 PositionFinalLimited = L4_MABX_B.SFunction1_o1_c4;
8350 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8351 PositionFinalLimited = DeltaTime;
8352 }
8353
8354 L4_MABX_B.MinMax_n = PositionFinalLimited;
8355
8356 /* End of MinMax: '<S332>/MinMax' */
8357
8358 /* Outputs for Atomic SubSystem: '<S332>/If_Then_Else4' */
8359
8360 /* Constant: '<S332>/FCW_ACTIVE_VSPD_TARGET_APV' incorporates:
8361 * Constant: '<S332>/Constant4'
8362 */
8363 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_gm,
8364 L4_MABX_P.FCW_ACTIVE_VSPD_TARGET_APV_Valu,
8365 L4_MABX_P.Constant4_Value_b, &L4_MABX_B.If_Then_Else4_e);
8366
8367 /* End of Outputs for SubSystem: '<S332>/If_Then_Else4' */
8368
8369 /* UnitDelay: '<S370>/FixPt Unit Delay2' */
8370 L4_MABX_B.FixPtUnitDelay2_p = L4_MABX_DW.FixPtUnitDelay2_DSTATE_ip;
8371
8372 /* UnitDelay: '<S370>/FixPt Unit Delay1' */
8373 L4_MABX_B.Xold_fv = L4_MABX_DW.FixPtUnitDelay1_DSTATE_hq;
8374
8375 /* Switch: '<S370>/Init' */
8376 if (L4_MABX_B.FixPtUnitDelay2_p != 0) {
8377 L4_MABX_B.Init_b = L4_MABX_B.If_Then_Else4_e.Switch;
8378 } else {
8379 L4_MABX_B.Init_b = L4_MABX_B.Xold_fv;
8380 }
8381
8382 /* End of Switch: '<S370>/Init' */
8383
8384 /* Abs: '<S366>/Abs' incorporates:
8385 * Constant: '<S332>/FCW_CTRL_SLEW_INC_APV'
8386 */
8387 L4_MABX_B.Abs_ez = fabs(L4_MABX_P.FCW_CTRL_SLEW_INC_APV_Value);
8388
8389 /* DigitalClock: '<S367>/Digital Clock' */
8390 L4_MABX_B.DigitalClock_b = L4_MABX_M->Timing.t[0];
8391
8392 /* UnitDelay: '<S367>/Unit_Delay' */
8393 L4_MABX_B.Unit_Delay_nx = L4_MABX_DW.Unit_Delay_DSTATE_b;
8394
8395 /* Sum: '<S367>/Subtract' */
8396 L4_MABX_B.Subtract_i = L4_MABX_B.DigitalClock_b - L4_MABX_B.Unit_Delay_nx;
8397
8398 /* Product: '<S366>/Product1' */
8399 L4_MABX_B.Product1_i = L4_MABX_B.Abs_ez * L4_MABX_B.Subtract_i;
8400
8401 /* Sum: '<S366>/Add1' */
8402 L4_MABX_B.Add1_b = L4_MABX_B.Init_b + L4_MABX_B.Product1_i;
8403
8404 /* MinMax: '<S366>/MinMax2' */
8405 DeltaTime = L4_MABX_B.If_Then_Else4_e.Switch;
8406 PositionFinalLimited = L4_MABX_B.Add1_b;
8407 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8408 PositionFinalLimited = DeltaTime;
8409 }
8410
8411 L4_MABX_B.MinMax2_k = PositionFinalLimited;
8412
8413 /* End of MinMax: '<S366>/MinMax2' */
8414
8415 /* Abs: '<S366>/Abs1' incorporates:
8416 * Constant: '<S332>/FCW_CTRL_SLEW_DEC_APV'
8417 */
8418 L4_MABX_B.Abs1_c = fabs(L4_MABX_P.FCW_CTRL_SLEW_DEC_APV_Value);
8419
8420 /* Product: '<S366>/Product2' */
8421 L4_MABX_B.Product2_n = L4_MABX_B.Subtract_i * L4_MABX_B.Abs1_c;
8422
8423 /* Sum: '<S366>/Subtract1' */
8424 L4_MABX_B.Subtract1_h = L4_MABX_B.Init_b - L4_MABX_B.Product2_n;
8425
8426 /* MinMax: '<S366>/MinMax1' */
8427 DeltaTime = L4_MABX_B.MinMax2_k;
8428 PositionFinalLimited = L4_MABX_B.Subtract1_h;
8429 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8430 PositionFinalLimited = DeltaTime;
8431 }
8432
8433 L4_MABX_B.MinMax1_jm = PositionFinalLimited;
8434
8435 /* End of MinMax: '<S366>/MinMax1' */
8436
8437 /* Outputs for Atomic SubSystem: '<S366>/If_Then_Else' */
8438 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_l4, L4_MABX_B.MinMax_n,
8439 L4_MABX_B.MinMax1_jm, &L4_MABX_B.If_Then_Else_bf);
8440
8441 /* End of Outputs for SubSystem: '<S366>/If_Then_Else' */
8442
8443 /* RateTransition: '<S81>/TmpRTBAtSignal Conversion3Inport1' */
8444 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
8445 L4_MABX_B.pathSpdLimit_a = L4_MABX_DW.TmpRTBAtSignalConversion3Inport;
8446 }
8447
8448 /* MultiPortSwitch: '<S81>/Multiport Switch' incorporates:
8449 * Constant: '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
8450 */
8451 switch (LONG_SPEED_SRC_SELECTOR_APV) {
8452 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
8453 /* SignalConversion: '<S81>/Signal Conversion3' */
8454 L4_MABX_B.Vehicle_speed_abs_max_e = L4_MABX_B.pathSpdLimit_a;
8455 L4_MABX_B.Vehicle_speed_abs_max = L4_MABX_B.Vehicle_speed_abs_max_e;
8456 break;
8457
8458 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
8459 /* SignalConversion: '<S81>/Signal Conversion8' incorporates:
8460 * Constant: '<S81>/VSPD_ABS_MAX_APV'
8461 */
8462 L4_MABX_B.Vehicle_speed_abs_max_j = L4_MABX_P.VSPD_ABS_MAX_APV_Value;
8463 L4_MABX_B.Vehicle_speed_abs_max = L4_MABX_B.Vehicle_speed_abs_max_j;
8464 break;
8465
8466 default:
8467 /* SignalConversion: '<S81>/Signal Conversion15' incorporates:
8468 * Constant: '<S81>/CPV1'
8469 */
8470 L4_MABX_B.Vehicle_speed_abs_max_g = L4_MABX_P.CPV1_Value;
8471 L4_MABX_B.Vehicle_speed_abs_max = L4_MABX_B.Vehicle_speed_abs_max_g;
8472 break;
8473 }
8474
8475 /* RelationalOperator: '<S328>/Compare' incorporates:
8476 * Constant: '<S328>/Constant'
8477 */
8478 L4_MABX_B.Compare_jr = (L4_MABX_B.SFunction1_o7_c ==
8479 L4_MABX_P.Constant_Value_a);
8480
8481 /* RateTransition: '<S81>/TmpRTBAtSignal Conversion2Inport1' */
8482 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
8483 L4_MABX_B.distance_o = L4_MABX_DW.TmpRTBAtSignalConversion2Inport;
8484 }
8485
8486 /* MultiPortSwitch: '<S81>/Multiport Switch' incorporates:
8487 * Constant: '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
8488 */
8489 switch (LONG_SPEED_SRC_SELECTOR_APV) {
8490 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
8491 /* SignalConversion: '<S81>/Signal Conversion2' */
8492 L4_MABX_B.Distance_to_achieve_speed_tar_f = L4_MABX_B.distance_o;
8493 L4_MABX_B.Distance_to_achieve_speed_targe =
8494 L4_MABX_B.Distance_to_achieve_speed_tar_f;
8495 break;
8496
8497 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
8498 /* SignalConversion: '<S81>/Signal Conversion7' incorporates:
8499 * Constant: '<S81>/DISTANCE_M'
8500 */
8501 L4_MABX_B.Distance_to_achieve_speed_tar_j = DISTANCE_M;
8502 L4_MABX_B.Distance_to_achieve_speed_targe =
8503 L4_MABX_B.Distance_to_achieve_speed_tar_j;
8504 break;
8505
8506 default:
8507 /* SignalConversion: '<S81>/Signal Conversion14' incorporates:
8508 * Constant: '<S81>/CPV'
8509 */
8510 L4_MABX_B.Distance_to_achieve_speed_tar_m = L4_MABX_P.CPV_Value_ia;
8511 L4_MABX_B.Distance_to_achieve_speed_targe =
8512 L4_MABX_B.Distance_to_achieve_speed_tar_m;
8513 break;
8514 }
8515
8516 /* UnitDelay: '<S329>/Delay Input1' */
8517 L4_MABX_B.Uk1[0] = L4_MABX_DW.DelayInput1_DSTATE[0];
8518 L4_MABX_B.Uk1[1] = L4_MABX_DW.DelayInput1_DSTATE[1];
8519
8520 /* RelationalOperator: '<S329>/FixPt Relational Operator' */
8521 L4_MABX_B.FixPtRelationalOperator_d[0] =
8522 (L4_MABX_B.Distance_to_achieve_speed_targe != L4_MABX_B.Uk1[0]);
8523 L4_MABX_B.FixPtRelationalOperator_d[1] = (L4_MABX_B.Vehicle_speed_target_o !=
8524 L4_MABX_B.Uk1[1]);
8525
8526 /* Logic: '<S81>/Logical Operator1' */
8527 L4_MABX_B.LogicalOperator1_ja = (L4_MABX_B.FixPtRelationalOperator_d[0] ||
8528 L4_MABX_B.FixPtRelationalOperator_d[1]);
8529
8530 /* Saturate: '<S331>/Saturation5' */
8531 DeltaTime = L4_MABX_B.SFunction1_o1_c4;
8532 Time56 = L4_MABX_P.Saturation5_LowerSat;
8533 PositionFinalLimited = L4_MABX_P.Saturation5_UpperSat;
8534 if (DeltaTime > PositionFinalLimited) {
8535 L4_MABX_B.Saturation5 = PositionFinalLimited;
8536 } else if (DeltaTime < Time56) {
8537 L4_MABX_B.Saturation5 = Time56;
8538 } else {
8539 L4_MABX_B.Saturation5 = DeltaTime;
8540 }
8541
8542 /* End of Saturate: '<S331>/Saturation5' */
8543
8544 /* MinMax: '<S331>/MinMax6' incorporates:
8545 * Constant: '<S331>/MIN_VSPD_SIGMOID_INITIAL_KPH_APV'
8546 */
8547 DeltaTime = L4_MABX_B.Saturation5;
8548 PositionFinalLimited = L4_MABX_P.MIN_VSPD_SIGMOID_INITIAL_KPH_AP;
8549 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8550 PositionFinalLimited = DeltaTime;
8551 }
8552
8553 L4_MABX_B.MinMax6 = PositionFinalLimited;
8554
8555 /* End of MinMax: '<S331>/MinMax6' */
8556
8557 /* Gain: '<S331>/Gain1' */
8558 L4_MABX_B.Gain1_e = L4_MABX_P.Gain1_Gain_a * L4_MABX_B.MinMax6;
8559
8560 /* Saturate: '<S331>/Saturation4' */
8561 DeltaTime = L4_MABX_B.Vehicle_speed_target_o;
8562 Time56 = L4_MABX_P.Saturation4_LowerSat;
8563 PositionFinalLimited = L4_MABX_P.Saturation4_UpperSat;
8564 if (DeltaTime > PositionFinalLimited) {
8565 L4_MABX_B.VSPD_TARGET_KPH_APV_gu = PositionFinalLimited;
8566 } else if (DeltaTime < Time56) {
8567 L4_MABX_B.VSPD_TARGET_KPH_APV_gu = Time56;
8568 } else {
8569 L4_MABX_B.VSPD_TARGET_KPH_APV_gu = DeltaTime;
8570 }
8571
8572 /* End of Saturate: '<S331>/Saturation4' */
8573
8574 /* MinMax: '<S331>/MinMax1' incorporates:
8575 * Constant: '<S331>/MIN_VSPD_SIGMOID_FINAL_KPH_APV'
8576 */
8577 DeltaTime = L4_MABX_B.VSPD_TARGET_KPH_APV_gu;
8578 PositionFinalLimited = L4_MABX_P.MIN_VSPD_SIGMOID_FINAL_KPH_APV_;
8579 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8580 PositionFinalLimited = DeltaTime;
8581 }
8582
8583 L4_MABX_B.MinMax1_f = PositionFinalLimited;
8584
8585 /* End of MinMax: '<S331>/MinMax1' */
8586
8587 /* Gain: '<S331>/Gain2' */
8588 L4_MABX_B.Gain2 = L4_MABX_P.Gain2_Gain_k * L4_MABX_B.MinMax1_f;
8589
8590 /* Saturate: '<S331>/Saturation6' */
8591 DeltaTime = SPN1810_LongitudinalAcceleration;
8592 Time56 = L4_MABX_P.Saturation6_LowerSat;
8593 PositionFinalLimited = L4_MABX_P.Saturation6_UpperSat;
8594 if (DeltaTime > PositionFinalLimited) {
8595 L4_MABX_B.Saturation6 = PositionFinalLimited;
8596 } else if (DeltaTime < Time56) {
8597 L4_MABX_B.Saturation6 = Time56;
8598 } else {
8599 L4_MABX_B.Saturation6 = DeltaTime;
8600 }
8601
8602 /* End of Saturate: '<S331>/Saturation6' */
8603
8604 /* MultiPortSwitch: '<S81>/Multiport Switch' incorporates:
8605 * Constant: '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
8606 */
8607 switch (LONG_SPEED_SRC_SELECTOR_APV) {
8608 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
8609 /* SignalConversion: '<S81>/Signal Conversion10' incorporates:
8610 * Constant: '<S81>/CPV3'
8611 */
8612 L4_MABX_B.Acceleration_target_ms2_d = L4_MABX_P.CPV3_Value_l;
8613 L4_MABX_B.Acceleration_target_ms2 = L4_MABX_B.Acceleration_target_ms2_d;
8614 break;
8615
8616 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
8617 /* SignalConversion: '<S81>/Signal Conversion5' incorporates:
8618 * Constant: '<S81>/VEH_ACCEL_TARGET_APV'
8619 */
8620 L4_MABX_B.Acceleration_target_ms2_h = L4_MABX_P.VEH_ACCEL_TARGET_APV_Value;
8621 L4_MABX_B.Acceleration_target_ms2 = L4_MABX_B.Acceleration_target_ms2_h;
8622 break;
8623
8624 default:
8625 /* SignalConversion: '<S81>/Signal Conversion11' incorporates:
8626 * Constant: '<S81>/CPV2'
8627 */
8628 L4_MABX_B.Acceleration_target_ms2_f = L4_MABX_P.CPV2_Value;
8629 L4_MABX_B.Acceleration_target_ms2 = L4_MABX_B.Acceleration_target_ms2_f;
8630 break;
8631 }
8632
8633 /* Saturate: '<S331>/Saturation7' */
8634 DeltaTime = L4_MABX_B.Acceleration_target_ms2;
8635 Time56 = L4_MABX_P.Saturation7_LowerSat;
8636 PositionFinalLimited = L4_MABX_P.Saturation7_UpperSat;
8637 if (DeltaTime > PositionFinalLimited) {
8638 L4_MABX_B.Saturation7 = PositionFinalLimited;
8639 } else if (DeltaTime < Time56) {
8640 L4_MABX_B.Saturation7 = Time56;
8641 } else {
8642 L4_MABX_B.Saturation7 = DeltaTime;
8643 }
8644
8645 /* End of Saturate: '<S331>/Saturation7' */
8646
8647 /* Saturate: '<S331>/Saturation1' incorporates:
8648 * Constant: '<S81>/VEH_JERK_INITIAL_APV'
8649 */
8650 DeltaTime = L4_MABX_P.VEH_JERK_INITIAL_APV_Value;
8651 Time56 = L4_MABX_P.Saturation1_LowerSat_b;
8652 PositionFinalLimited = L4_MABX_P.Saturation1_UpperSat_o;
8653 if (DeltaTime > PositionFinalLimited) {
8654 L4_MABX_B.Saturation1 = PositionFinalLimited;
8655 } else if (DeltaTime < Time56) {
8656 L4_MABX_B.Saturation1 = Time56;
8657 } else {
8658 L4_MABX_B.Saturation1 = DeltaTime;
8659 }
8660
8661 /* End of Saturate: '<S331>/Saturation1' */
8662
8663 /* MultiPortSwitch: '<S81>/Multiport Switch' incorporates:
8664 * Constant: '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
8665 */
8666 switch (LONG_SPEED_SRC_SELECTOR_APV) {
8667 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
8668 /* SignalConversion: '<S81>/Signal Conversion13' incorporates:
8669 * Constant: '<S81>/CPV4'
8670 */
8671 L4_MABX_B.Jerk_target_ms3_g = L4_MABX_P.CPV4_Value_k;
8672 L4_MABX_B.Jerk_target_ms3 = L4_MABX_B.Jerk_target_ms3_g;
8673 break;
8674
8675 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
8676 /* SignalConversion: '<S81>/Signal Conversion6' incorporates:
8677 * Constant: '<S81>/VEH_JERK_TARGET_APV'
8678 */
8679 L4_MABX_B.Jerk_target_ms3_d = L4_MABX_P.VEH_JERK_TARGET_APV_Value;
8680 L4_MABX_B.Jerk_target_ms3 = L4_MABX_B.Jerk_target_ms3_d;
8681 break;
8682
8683 default:
8684 /* SignalConversion: '<S81>/Signal Conversion12' incorporates:
8685 * Constant: '<S81>/CPV5'
8686 */
8687 L4_MABX_B.Jerk_target_ms3_l = L4_MABX_P.CPV5_Value_n;
8688 L4_MABX_B.Jerk_target_ms3 = L4_MABX_B.Jerk_target_ms3_l;
8689 break;
8690 }
8691
8692 /* Saturate: '<S331>/Saturation2' */
8693 DeltaTime = L4_MABX_B.Jerk_target_ms3;
8694 Time56 = L4_MABX_P.Saturation2_LowerSat;
8695 PositionFinalLimited = L4_MABX_P.Saturation2_UpperSat;
8696 if (DeltaTime > PositionFinalLimited) {
8697 L4_MABX_B.Saturation2 = PositionFinalLimited;
8698 } else if (DeltaTime < Time56) {
8699 L4_MABX_B.Saturation2 = Time56;
8700 } else {
8701 L4_MABX_B.Saturation2 = DeltaTime;
8702 }
8703
8704 /* End of Saturate: '<S331>/Saturation2' */
8705
8706 /* Chart: '<S331>/VehicleSpeedSetpointDynamicCalculation' */
8707 /* Gateway: Controller/L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/VehicleSpeedSetpointDynamicCalculation */
8708 /* During: Controller/L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/VehicleSpeedSetpointDynamicCalculation */
8709 /* Entry Internal: Controller/L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/VehicleSpeedSetpointDynamicCalculation */
8710 /* Transition: '<S346>:88' */
8711 if (L4_MABX_B.LogicalOperator1_ja) {
8712 /* Transition: '<S346>:89' */
8713 /* Transition: '<S346>:39' */
8714 PositionFinalLimited = L4_MABX_B.Distance_to_achieve_speed_targe;
8715 if ((0.001 > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8716 PositionFinalLimited = 0.001;
8717 }
8718
8719 Time56 = L4_MABX_B.Gain1_e;
8720 if ((0.1 > Time56) || rtIsNaN(Time56)) {
8721 L4_MABX_DW.VelocityInitialLimited = 0.1;
8722 } else {
8723 L4_MABX_DW.VelocityInitialLimited = Time56;
8724 }
8725
8726 Time56 = L4_MABX_B.Gain2;
8727 if ((0.1 > Time56) || rtIsNaN(Time56)) {
8728 L4_MABX_DW.VelocityFinalLimited = 0.1;
8729 } else {
8730 L4_MABX_DW.VelocityFinalLimited = Time56;
8731 }
8732
8733 L4_MABX_DW.TimeFinal = 2.0 * PositionFinalLimited /
8734 (L4_MABX_DW.VelocityInitialLimited + L4_MABX_DW.VelocityFinalLimited);
8735 Time56 = L4_MABX_DW.TimeFinal;
8736 if ((0.007 > Time56) || rtIsNaN(Time56)) {
8737 L4_MABX_DW.TimeFinal = 0.007;
8738 } else {
8739 L4_MABX_DW.TimeFinal = Time56;
8740 }
8741
8742 AccelerationAverage = (L4_MABX_DW.VelocityFinalLimited -
8743 L4_MABX_DW.VelocityInitialLimited) / L4_MABX_DW.TimeFinal;
8744 L4_MABX_DW.TimeFinal *= 2.0;
8745 if (L4_MABX_DW.VelocityFinalLimited > L4_MABX_DW.VelocityInitialLimited) {
8746 /* Transition: '<S346>:238' */
8747 /* Transition: '<S346>:240' */
8748 Time56 = L4_MABX_B.Saturation6;
8749 if ((AccelerationAverage < Time56) || rtIsNaN(Time56)) {
8750 Time56 = AccelerationAverage;
8751 }
8752
8753 if ((0.0 > Time56) || rtIsNaN(Time56)) {
8754 L4_MABX_DW.AccelerationInitialLimited = 0.0;
8755 } else {
8756 L4_MABX_DW.AccelerationInitialLimited = Time56;
8757 }
8758
8759 Time56 = L4_MABX_B.Saturation7;
8760 if ((AccelerationAverage < Time56) || rtIsNaN(Time56)) {
8761 Time56 = AccelerationAverage;
8762 }
8763
8764 if ((0.0 > Time56) || rtIsNaN(Time56)) {
8765 L4_MABX_DW.AccelerationFinalLimited = 0.0;
8766 } else {
8767 L4_MABX_DW.AccelerationFinalLimited = Time56;
8768 }
8769
8770 /* Transition: '<S346>:243' */
8771 } else {
8772 /* Transition: '<S346>:241' */
8773 Time56 = L4_MABX_B.Saturation6;
8774 if ((0.0 < Time56) || rtIsNaN(Time56)) {
8775 Time56 = 0.0;
8776 }
8777
8778 if ((AccelerationAverage > Time56) || rtIsNaN(Time56)) {
8779 L4_MABX_DW.AccelerationInitialLimited = AccelerationAverage;
8780 } else {
8781 L4_MABX_DW.AccelerationInitialLimited = Time56;
8782 }
8783
8784 Time56 = L4_MABX_B.Saturation7;
8785 if ((0.0 < Time56) || rtIsNaN(Time56)) {
8786 Time56 = 0.0;
8787 }
8788
8789 if ((AccelerationAverage > Time56) || rtIsNaN(Time56)) {
8790 L4_MABX_DW.AccelerationFinalLimited = AccelerationAverage;
8791 } else {
8792 L4_MABX_DW.AccelerationFinalLimited = Time56;
8793 }
8794 }
8795
8796 /* Transition: '<S346>:16' */
8797 DeltaTimeFinal = L4_MABX_DW.TimeFinal;
8798 for (starting_index = 1U; starting_index < 16; starting_index++) {
8799 /* Transition: '<S346>:14' */
8800 /* Transition: '<S346>:201' */
8801 DeltaTime = ((L4_MABX_DW.VelocityInitialLimited -
8802 L4_MABX_DW.VelocityFinalLimited) +
8803 L4_MABX_DW.AccelerationFinalLimited * L4_MABX_DW.TimeFinal) *
8804 2.0 / (L4_MABX_DW.TimeFinal * L4_MABX_DW.TimeFinal);
8805 if (L4_MABX_DW.VelocityFinalLimited > L4_MABX_DW.VelocityInitialLimited) {
8806 /* Transition: '<S346>:121' */
8807 /* Transition: '<S346>:116' */
8808 L4_MABX_DW.Jerk12 = L4_MABX_B.Saturation1;
8809 DeltaTime = fabs(DeltaTime);
8810 Time56 = L4_MABX_B.Saturation2;
8811 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
8812 Time56 = DeltaTime;
8813 }
8814
8815 L4_MABX_DW.Jerk56 = -Time56;
8816
8817 /* Transition: '<S346>:120' */
8818 } else {
8819 /* Transition: '<S346>:122' */
8820 L4_MABX_DW.Jerk12 = -L4_MABX_B.Saturation1;
8821 DeltaTime = fabs(DeltaTime);
8822 Time56 = L4_MABX_B.Saturation2;
8823 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
8824 L4_MABX_DW.Jerk56 = DeltaTime;
8825 } else {
8826 L4_MABX_DW.Jerk56 = Time56;
8827 }
8828 }
8829
8830 /* Transition: '<S346>:275' */
8831 L4_MABX_CalculateAcceleration34();
8832 if (fabs(L4_MABX_DW.Acceleration34 - AccelerationAverage) < 0.001) {
8833 /* Transition: '<S346>:141' */
8834 /* Transition: '<S346>:145' */
8835 L4_MABX_B.TimeVectorRaw[0] = 0.0;
8836 L4_MABX_B.TimeVectorRaw[1] = 0.001;
8837 L4_MABX_B.TimeVectorRaw[2] = 0.003;
8838 L4_MABX_B.TimeVectorRaw[3] = (L4_MABX_DW.TimeFinal - 0.002) - 0.001;
8839 L4_MABX_B.TimeVectorRaw[4] = (L4_MABX_DW.TimeFinal - 0.002) + 0.001;
8840 L4_MABX_B.TimeVectorRaw[5] = L4_MABX_DW.TimeFinal;
8841 for (i = 0; i < 6; i++) {
8842 L4_MABX_B.JerkVectorRaw[i] = 0.0;
8843 }
8844
8845 L4_MABX_B.AccelerationVectorRaw[0] = AccelerationAverage;
8846
8847 /* Transition: '<S346>:191' */
8848 /* Transition: '<S346>:303' */
8849 } else {
8850 /* Transition: '<S346>:298' */
8851 if (L4_MABX_DW.AlternateMethod) {
8852 /* Transition: '<S346>:300' */
8853 /* Transition: '<S346>:302' */
8854 Time56 = (L4_MABX_DW.AccelerationFinalLimited -
8855 L4_MABX_DW.Acceleration34) / L4_MABX_DW.Jerk56;
8856 if ((0.002 > Time56) || rtIsNaN(Time56)) {
8857 Time56 = 0.002;
8858 }
8859
8860 L4_MABX_B.TimeVectorRaw[0] = 0.0;
8861 L4_MABX_B.TimeVectorRaw[1] = 0.001;
8862 L4_MABX_B.TimeVectorRaw[2] = 0.003;
8863 L4_MABX_B.TimeVectorRaw[3] = (L4_MABX_DW.TimeFinal - Time56) - 0.001;
8864 L4_MABX_B.TimeVectorRaw[4] = (L4_MABX_DW.TimeFinal - Time56) + 0.001;
8865 L4_MABX_B.TimeVectorRaw[5] = L4_MABX_DW.TimeFinal;
8866 L4_MABX_B.JerkVectorRaw[0] = 0.0;
8867 L4_MABX_B.JerkVectorRaw[1] = 0.0;
8868 L4_MABX_B.JerkVectorRaw[2] = 0.0;
8869 L4_MABX_B.JerkVectorRaw[3] = 0.0;
8870 L4_MABX_B.JerkVectorRaw[4] = L4_MABX_DW.Jerk56;
8871 L4_MABX_B.JerkVectorRaw[5] = L4_MABX_DW.Jerk56;
8872 L4_MABX_B.AccelerationVectorRaw[0] = L4_MABX_DW.Acceleration34;
8873
8874 /* Transition: '<S346>:303' */
8875 } else {
8876 /* Transition: '<S346>:157' */
8877 DeltaTime = (L4_MABX_DW.Acceleration34 -
8878 L4_MABX_DW.AccelerationInitialLimited) /
8879 L4_MABX_DW.Jerk12;
8880 if ((0.002 > DeltaTime) || rtIsNaN(DeltaTime)) {
8881 DeltaTime = 0.002;
8882 }
8883
8884 Time56 = (L4_MABX_DW.AccelerationFinalLimited -
8885 L4_MABX_DW.Acceleration34) / L4_MABX_DW.Jerk56;
8886 if ((0.002 > Time56) || rtIsNaN(Time56)) {
8887 Time56 = 0.002;
8888 }
8889
8890 L4_MABX_B.TimeVectorRaw[0] = 0.0;
8891 L4_MABX_B.TimeVectorRaw[1] = DeltaTime - 0.001;
8892 L4_MABX_B.TimeVectorRaw[2] = DeltaTime + 0.001;
8893 L4_MABX_B.TimeVectorRaw[3] = (L4_MABX_DW.TimeFinal - Time56) - 0.001;
8894 L4_MABX_B.TimeVectorRaw[4] = (L4_MABX_DW.TimeFinal - Time56) + 0.001;
8895 L4_MABX_B.TimeVectorRaw[5] = L4_MABX_DW.TimeFinal;
8896 L4_MABX_B.JerkVectorRaw[0] = L4_MABX_DW.Jerk12;
8897 L4_MABX_B.JerkVectorRaw[1] = L4_MABX_DW.Jerk12;
8898 L4_MABX_B.JerkVectorRaw[2] = 0.0;
8899 L4_MABX_B.JerkVectorRaw[3] = 0.0;
8900 L4_MABX_B.JerkVectorRaw[4] = L4_MABX_DW.Jerk56;
8901 L4_MABX_B.JerkVectorRaw[5] = L4_MABX_DW.Jerk56;
8902 L4_MABX_B.AccelerationVectorRaw[0] =
8903 L4_MABX_DW.AccelerationInitialLimited;
8904 }
8905 }
8906
8907 /* Transition: '<S346>:29' */
8908 L4_MABX_B.VelocityVectorRaw[0] = L4_MABX_DW.VelocityInitialLimited;
8909 L4_MABX_B.PositionVectorRaw[0] = 0.0;
8910 for (j = 2U; j < 7; j++) {
8911 /* Transition: '<S346>:34' */
8912 /* Transition: '<S346>:36' */
8913 DeltaTime = L4_MABX_B.TimeVectorRaw[j - 1] - L4_MABX_B.TimeVectorRaw[j -
8914 2];
8915 L4_MABX_B.AccelerationVectorRaw[j - 1] = L4_MABX_B.JerkVectorRaw[j - 2] *
8916 DeltaTime + L4_MABX_B.AccelerationVectorRaw[j - 2];
8917 L4_MABX_B.VelocityVectorRaw[j - 1] = (L4_MABX_B.AccelerationVectorRaw[j
8918 - 2] * DeltaTime + L4_MABX_B.VelocityVectorRaw[j - 2]) +
8919 L4_MABX_B.JerkVectorRaw[j - 2] * 0.5 * (DeltaTime * DeltaTime);
8920 L4_MABX_B.PositionVectorRaw[j - 1] = ((L4_MABX_B.VelocityVectorRaw[j - 2]
8921 * DeltaTime + L4_MABX_B.PositionVectorRaw[j - 2]) +
8922 L4_MABX_B.AccelerationVectorRaw[j - 2] * 0.5 * (DeltaTime * DeltaTime))
8923 + L4_MABX_B.JerkVectorRaw[j - 2] / 6.0 * rt_powd_snf(DeltaTime, 3.0);
8924
8925 /* Transition: '<S346>:33' */
8926 }
8927
8928 /* Transition: '<S346>:37' */
8929 DeltaTimeFinal *= 0.5;
8930 if ((L4_MABX_B.PositionVectorRaw[5] - PositionFinalLimited < 0.0) &&
8931 (L4_MABX_B.VelocityVectorRaw[5] > 0.0)) {
8932 /* Transition: '<S346>:61' */
8933 /* Transition: '<S346>:62' */
8934 L4_MABX_DW.TimeFinal += DeltaTimeFinal;
8935
8936 /* Transition: '<S346>:64' */
8937 } else {
8938 /* Transition: '<S346>:63' */
8939 L4_MABX_DW.TimeFinal -= DeltaTimeFinal;
8940 }
8941
8942 /* Transition: '<S346>:60' */
8943 Time56 = L4_MABX_DW.TimeFinal;
8944 if ((0.007 > Time56) || rtIsNaN(Time56)) {
8945 L4_MABX_DW.TimeFinal = 0.007;
8946 } else {
8947 L4_MABX_DW.TimeFinal = Time56;
8948 }
8949
8950 /* Transition: '<S346>:17' */
8951 }
8952
8953 /* Transition: '<S346>:18' */
8954 /* Transition: '<S346>:91' */
8955 } else {
8956 /* Transition: '<S346>:90' */
8957 }
8958
8959 /* End of Chart: '<S331>/VehicleSpeedSetpointDynamicCalculation' */
8960
8961 /* Chart: '<S331>/TwentyPointVectorCalculation' */
8962 if (L4_MABX_B.LogicalOperator1_ja) {
8963 /* Transition: '<S345>:89' */
8964 /* Transition: '<S345>:39' */
8965 L4_MABX_B.TimeVector[0] = L4_MABX_B.TimeVectorRaw[0];
8966 L4_MABX_B.JerkVector[0] = L4_MABX_B.JerkVectorRaw[0];
8967 L4_MABX_B.AccelerationVector[0] = L4_MABX_B.AccelerationVectorRaw[0];
8968 L4_MABX_B.VelocityVector[0] = L4_MABX_B.VelocityVectorRaw[0];
8969 L4_MABX_B.PositionVector[0] = L4_MABX_B.PositionVectorRaw[0];
8970 PositionFinalLimited = (L4_MABX_B.TimeVectorRaw[1] -
8971 L4_MABX_B.TimeVectorRaw[0]) / 10.0;
8972 for (starting_index = 2U; starting_index < 11; starting_index++) {
8973 /* Transition: '<S345>:14' */
8974 /* Transition: '<S345>:101' */
8975 L4_MABX_B.TimeVector[starting_index - 1] =
8976 L4_MABX_B.TimeVector[starting_index - 2] + PositionFinalLimited;
8977 DeltaTime = L4_MABX_B.TimeVector[starting_index - 1] -
8978 L4_MABX_B.TimeVectorRaw[0];
8979 L4_MABX_B.JerkVector[starting_index - 1] = L4_MABX_B.JerkVectorRaw[0];
8980 L4_MABX_B.AccelerationVector[starting_index - 1] =
8981 L4_MABX_B.JerkVectorRaw[0] * DeltaTime +
8982 L4_MABX_B.AccelerationVectorRaw[0];
8983 L4_MABX_B.VelocityVector[starting_index - 1] =
8984 (L4_MABX_B.AccelerationVectorRaw[0] * DeltaTime +
8985 L4_MABX_B.VelocityVectorRaw[0]) + 0.5 * L4_MABX_B.JerkVectorRaw[0] *
8986 (DeltaTime * DeltaTime);
8987 L4_MABX_B.PositionVector[starting_index - 1] =
8988 ((L4_MABX_B.VelocityVectorRaw[0] * DeltaTime +
8989 L4_MABX_B.PositionVectorRaw[0]) + 0.5 *
8990 L4_MABX_B.AccelerationVectorRaw[0] * (DeltaTime * DeltaTime)) +
8991 L4_MABX_B.JerkVectorRaw[0] / 6.0 * rt_powd_snf(DeltaTime, 3.0);
8992 DeltaTime = L4_MABX_B.PositionVector[starting_index - 2] + 0.0001;
8993 Time56 = L4_MABX_B.PositionVector[starting_index - 1];
8994 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
8995 Time56 = DeltaTime;
8996 }
8997
8998 L4_MABX_B.PositionVector[starting_index - 1] = Time56;
8999
9000 /* Transition: '<S345>:17' */
9001 }
9002
9003 /* Transition: '<S345>:110' */
9004 L4_MABX_B.TimeVector[10] = L4_MABX_B.TimeVectorRaw[1];
9005 L4_MABX_B.JerkVector[10] = L4_MABX_B.JerkVectorRaw[1];
9006 L4_MABX_B.AccelerationVector[10] = L4_MABX_B.AccelerationVectorRaw[1];
9007 L4_MABX_B.VelocityVector[10] = L4_MABX_B.VelocityVectorRaw[1];
9008 DeltaTime = L4_MABX_B.PositionVector[9] + 0.0001;
9009 Time56 = L4_MABX_B.PositionVectorRaw[1];
9010 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9011 Time56 = DeltaTime;
9012 }
9013
9014 L4_MABX_B.PositionVector[10] = Time56;
9015 L4_MABX_B.TimeVector[11] = L4_MABX_B.TimeVectorRaw[2];
9016 L4_MABX_B.JerkVector[11] = L4_MABX_B.JerkVectorRaw[2];
9017 L4_MABX_B.AccelerationVector[11] = L4_MABX_B.AccelerationVectorRaw[2];
9018 L4_MABX_B.VelocityVector[11] = L4_MABX_B.VelocityVectorRaw[2];
9019 DeltaTime = L4_MABX_B.PositionVector[10] + 0.0001;
9020 Time56 = L4_MABX_B.PositionVectorRaw[2];
9021 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9022 Time56 = DeltaTime;
9023 }
9024
9025 L4_MABX_B.PositionVector[11] = Time56;
9026 PositionFinalLimited = (L4_MABX_B.TimeVectorRaw[3] -
9027 L4_MABX_B.TimeVectorRaw[2]) / 10.0;
9028 for (starting_index = 13U; starting_index < 22; starting_index++) {
9029 /* Transition: '<S345>:127' */
9030 /* Transition: '<S345>:133' */
9031 L4_MABX_B.TimeVector[starting_index - 1] =
9032 L4_MABX_B.TimeVector[starting_index - 2] + PositionFinalLimited;
9033 DeltaTime = L4_MABX_B.TimeVector[starting_index - 1] -
9034 L4_MABX_B.TimeVectorRaw[2];
9035 L4_MABX_B.JerkVector[starting_index - 1] = L4_MABX_B.JerkVectorRaw[2];
9036 L4_MABX_B.AccelerationVector[starting_index - 1] =
9037 L4_MABX_B.JerkVectorRaw[2] * DeltaTime +
9038 L4_MABX_B.AccelerationVectorRaw[2];
9039 L4_MABX_B.VelocityVector[starting_index - 1] =
9040 (L4_MABX_B.AccelerationVectorRaw[2] * DeltaTime +
9041 L4_MABX_B.VelocityVectorRaw[2]) + 0.5 * L4_MABX_B.JerkVectorRaw[2] *
9042 (DeltaTime * DeltaTime);
9043 L4_MABX_B.PositionVector[starting_index - 1] =
9044 ((L4_MABX_B.VelocityVectorRaw[2] * DeltaTime +
9045 L4_MABX_B.PositionVectorRaw[2]) + 0.5 *
9046 L4_MABX_B.AccelerationVectorRaw[2] * (DeltaTime * DeltaTime)) +
9047 L4_MABX_B.JerkVectorRaw[2] / 6.0 * rt_powd_snf(DeltaTime, 3.0);
9048 DeltaTime = L4_MABX_B.PositionVector[starting_index - 2] + 0.0001;
9049 Time56 = L4_MABX_B.PositionVector[starting_index - 1];
9050 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9051 Time56 = DeltaTime;
9052 }
9053
9054 L4_MABX_B.PositionVector[starting_index - 1] = Time56;
9055
9056 /* Transition: '<S345>:131' */
9057 }
9058
9059 /* Transition: '<S345>:132' */
9060 L4_MABX_B.TimeVector[21] = L4_MABX_B.TimeVectorRaw[3];
9061 L4_MABX_B.JerkVector[21] = L4_MABX_B.JerkVectorRaw[3];
9062 L4_MABX_B.AccelerationVector[21] = L4_MABX_B.AccelerationVectorRaw[3];
9063 L4_MABX_B.VelocityVector[21] = L4_MABX_B.VelocityVectorRaw[3];
9064 DeltaTime = L4_MABX_B.PositionVector[20] + 0.0001;
9065 Time56 = L4_MABX_B.PositionVectorRaw[3];
9066 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9067 Time56 = DeltaTime;
9068 }
9069
9070 L4_MABX_B.PositionVector[21] = Time56;
9071 L4_MABX_B.TimeVector[22] = L4_MABX_B.TimeVectorRaw[4];
9072 L4_MABX_B.JerkVector[22] = L4_MABX_B.JerkVectorRaw[4];
9073 L4_MABX_B.AccelerationVector[22] = L4_MABX_B.AccelerationVectorRaw[4];
9074 L4_MABX_B.VelocityVector[22] = L4_MABX_B.VelocityVectorRaw[4];
9075 DeltaTime = L4_MABX_B.PositionVector[21] + 0.0001;
9076 Time56 = L4_MABX_B.PositionVectorRaw[4];
9077 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9078 Time56 = DeltaTime;
9079 }
9080
9081 L4_MABX_B.PositionVector[22] = Time56;
9082 PositionFinalLimited = (L4_MABX_B.TimeVectorRaw[5] -
9083 L4_MABX_B.TimeVectorRaw[4]) / 10.0;
9084 for (starting_index = 24U; starting_index < 33; starting_index++) {
9085 /* Transition: '<S345>:111' */
9086 /* Transition: '<S345>:113' */
9087 L4_MABX_B.TimeVector[starting_index - 1] =
9088 L4_MABX_B.TimeVector[starting_index - 2] + PositionFinalLimited;
9089 DeltaTime = L4_MABX_B.TimeVector[starting_index - 1] -
9090 L4_MABX_B.TimeVectorRaw[4];
9091 L4_MABX_B.JerkVector[starting_index - 1] = L4_MABX_B.JerkVectorRaw[4];
9092 L4_MABX_B.AccelerationVector[starting_index - 1] =
9093 L4_MABX_B.JerkVectorRaw[4] * DeltaTime +
9094 L4_MABX_B.AccelerationVectorRaw[4];
9095 L4_MABX_B.VelocityVector[starting_index - 1] =
9096 (L4_MABX_B.AccelerationVectorRaw[4] * DeltaTime +
9097 L4_MABX_B.VelocityVectorRaw[4]) + 0.5 * L4_MABX_B.JerkVectorRaw[4] *
9098 (DeltaTime * DeltaTime);
9099 L4_MABX_B.PositionVector[starting_index - 1] =
9100 ((L4_MABX_B.VelocityVectorRaw[4] * DeltaTime +
9101 L4_MABX_B.PositionVectorRaw[4]) + 0.5 *
9102 L4_MABX_B.AccelerationVectorRaw[4] * (DeltaTime * DeltaTime)) +
9103 L4_MABX_B.JerkVectorRaw[4] / 6.0 * rt_powd_snf(DeltaTime, 3.0);
9104 DeltaTime = L4_MABX_B.PositionVector[starting_index - 2] + 0.0001;
9105 Time56 = L4_MABX_B.PositionVector[starting_index - 1];
9106 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9107 Time56 = DeltaTime;
9108 }
9109
9110 L4_MABX_B.PositionVector[starting_index - 1] = Time56;
9111
9112 /* Transition: '<S345>:112' */
9113 }
9114
9115 /* Transition: '<S345>:114' */
9116 L4_MABX_B.TimeVector[32] = L4_MABX_B.TimeVectorRaw[5];
9117 L4_MABX_B.JerkVector[32] = L4_MABX_B.JerkVectorRaw[5];
9118 L4_MABX_B.AccelerationVector[32] = L4_MABX_B.AccelerationVectorRaw[5];
9119 L4_MABX_B.VelocityVector[32] = L4_MABX_B.VelocityVectorRaw[5];
9120 DeltaTime = L4_MABX_B.PositionVector[31] + 0.0001;
9121 Time56 = L4_MABX_B.PositionVectorRaw[5];
9122 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9123 Time56 = DeltaTime;
9124 }
9125
9126 L4_MABX_B.PositionVector[32] = Time56;
9127
9128 /* Transition: '<S345>:141' */
9129 } else {
9130 /* Transition: '<S345>:90' */
9131 }
9132
9133 /* End of Chart: '<S331>/TwentyPointVectorCalculation' */
9134
9135 /* Gain: '<S331>/Gain3' */
9136 /* Transition: '<S346>:93' */
9137 /* Gateway: Controller/L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/TwentyPointVectorCalculation */
9138 /* During: Controller/L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/TwentyPointVectorCalculation */
9139 /* Entry Internal: Controller/L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/TwentyPointVectorCalculation */
9140 /* Transition: '<S345>:88' */
9141 /* Transition: '<S345>:93' */
9142 for (i = 0; i < 33; i++) {
9143 L4_MABX_B.Vehicle_speed_vector_kph[i] = L4_MABX_P.Gain3_Gain_l *
9144 L4_MABX_B.VelocityVector[i];
9145 }
9146
9147 /* End of Gain: '<S331>/Gain3' */
9148
9149 /* RelationalOperator: '<S348>/Compare' incorporates:
9150 * Constant: '<S348>/Constant'
9151 */
9152 for (i = 0; i < 33; i++) {
9153 L4_MABX_B.Compare_nk[i] = (L4_MABX_B.Vehicle_speed_vector_kph[i] <
9154 L4_MABX_P.Constant_Value_n);
9155 }
9156
9157 /* End of RelationalOperator: '<S348>/Compare' */
9158
9159 /* Logic: '<S343>/Logical Operator' */
9160 zcEvent = L4_MABX_B.Compare_nk[0];
9161 for (i = 0; i < 32; i++) {
9162 zcEvent = (zcEvent || L4_MABX_B.Compare_nk[i + 1]);
9163 }
9164
9165 L4_MABX_B.f_vspd_output_less_than_zero = zcEvent;
9166
9167 /* End of Logic: '<S343>/Logical Operator' */
9168
9169 /* MinMax: '<S343>/MinMax3' */
9170 PositionFinalLimited = L4_MABX_B.Vehicle_speed_vector_kph[0];
9171 for (i = 0; i < 32; i++) {
9172 Time56 = L4_MABX_B.Vehicle_speed_vector_kph[i + 1];
9173 if (!((PositionFinalLimited < Time56) || rtIsNaN(Time56))) {
9174 PositionFinalLimited = Time56;
9175 }
9176 }
9177
9178 L4_MABX_B.MinMax3 = PositionFinalLimited;
9179
9180 /* End of MinMax: '<S343>/MinMax3' */
9181
9182 /* UnitDelay: '<S347>/Unit_Delay' */
9183 L4_MABX_B.Unit_Delay_f = L4_MABX_DW.Unit_Delay_DSTATE_bw;
9184
9185 /* Outputs for Atomic SubSystem: '<S347>/If_Then_Else' */
9186 L4_MABX_If_Then_Else_g(L4_MABX_B.LogicalOperator1_ja, L4_MABX_B.Saturation5,
9187 L4_MABX_B.Unit_Delay_f, &L4_MABX_B.If_Then_Else_og);
9188
9189 /* End of Outputs for SubSystem: '<S347>/If_Then_Else' */
9190
9191 /* MinMax: '<S343>/MinMax5' */
9192 DeltaTime = L4_MABX_B.If_Then_Else_og.Switch;
9193 PositionFinalLimited = L4_MABX_B.VSPD_TARGET_KPH_APV_gu;
9194 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9195 PositionFinalLimited = DeltaTime;
9196 }
9197
9198 L4_MABX_B.MinMax5 = PositionFinalLimited;
9199
9200 /* End of MinMax: '<S343>/MinMax5' */
9201
9202 /* Sum: '<S343>/Subtract' */
9203 L4_MABX_B.Subtract_a = L4_MABX_B.MinMax3 - L4_MABX_B.MinMax5;
9204
9205 /* Abs: '<S343>/Abs' */
9206 L4_MABX_B.Abs_m = fabs(L4_MABX_B.Subtract_a);
9207
9208 /* RelationalOperator: '<S343>/Relational Operator' incorporates:
9209 * Constant: '<S343>/MIN_VSPD_DELTA_THRESHOLD_KPH_APV'
9210 */
9211 L4_MABX_B.RelationalOperator_fg = (L4_MABX_B.Abs_m >
9212 L4_MABX_P.MIN_VSPD_DELTA_THRESHOLD_KPH_AP);
9213
9214 /* Logic: '<S349>/Logical Operator3' incorporates:
9215 * Constant: '<S343>/CPV'
9216 */
9217 L4_MABX_B.LogicalOperator3_o = !L4_MABX_P.CPV_Value_a;
9218
9219 /* UnitDelay: '<S349>/Unit_Delay' */
9220 L4_MABX_B.Unit_Delay_ag = L4_MABX_DW.Unit_Delay_DSTATE_ko;
9221
9222 /* Logic: '<S349>/Logical Operator' */
9223 L4_MABX_B.LogicalOperator_o = (L4_MABX_B.LogicalOperator3_o &&
9224 L4_MABX_B.Unit_Delay_ag);
9225
9226 /* Logic: '<S349>/Logical Operator1' */
9227 L4_MABX_B.LogicalOperator1_p = (L4_MABX_B.LogicalOperator1_ja ||
9228 L4_MABX_B.LogicalOperator_o);
9229
9230 /* Logic: '<S343>/Logical Operator2' */
9231 L4_MABX_B.f_vspd_min_delta_greater_than_t = (L4_MABX_B.RelationalOperator_fg &&
9232 L4_MABX_B.LogicalOperator1_p);
9233
9234 /* MinMax: '<S343>/MinMax4' */
9235 PositionFinalLimited = L4_MABX_B.Vehicle_speed_vector_kph[0];
9236 for (i = 0; i < 32; i++) {
9237 Time56 = L4_MABX_B.Vehicle_speed_vector_kph[i + 1];
9238 if (!((PositionFinalLimited > Time56) || rtIsNaN(Time56))) {
9239 PositionFinalLimited = Time56;
9240 }
9241 }
9242
9243 L4_MABX_B.MinMax4 = PositionFinalLimited;
9244
9245 /* End of MinMax: '<S343>/MinMax4' */
9246
9247 /* MinMax: '<S343>/MinMax6' */
9248 DeltaTime = L4_MABX_B.If_Then_Else_og.Switch;
9249 PositionFinalLimited = L4_MABX_B.VSPD_TARGET_KPH_APV_gu;
9250 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9251 PositionFinalLimited = DeltaTime;
9252 }
9253
9254 L4_MABX_B.MinMax6_j = PositionFinalLimited;
9255
9256 /* End of MinMax: '<S343>/MinMax6' */
9257
9258 /* Sum: '<S343>/Subtract1' */
9259 L4_MABX_B.Subtract1_c = L4_MABX_B.MinMax4 - L4_MABX_B.MinMax6_j;
9260
9261 /* Abs: '<S343>/Abs1' */
9262 L4_MABX_B.Abs1_h5 = fabs(L4_MABX_B.Subtract1_c);
9263
9264 /* RelationalOperator: '<S343>/Relational Operator1' incorporates:
9265 * Constant: '<S343>/MAX_VSPD_DELTA_THRESHOLD_KPH_APV'
9266 */
9267 L4_MABX_B.RelationalOperator1_g = (L4_MABX_B.Abs1_h5 >
9268 L4_MABX_P.MAX_VSPD_DELTA_THRESHOLD_KPH_AP);
9269
9270 /* Logic: '<S343>/Logical Operator1' */
9271 L4_MABX_B.f_vspd_max_delta_greater_than_t = (L4_MABX_B.RelationalOperator1_g &&
9272 L4_MABX_B.LogicalOperator1_p);
9273
9274 /* MinMax: '<S343>/MinMax8' */
9275 PositionFinalLimited = L4_MABX_B.AccelerationVector[0];
9276 for (i = 0; i < 32; i++) {
9277 Time56 = L4_MABX_B.AccelerationVector[i + 1];
9278 if (!((PositionFinalLimited > Time56) || rtIsNaN(Time56))) {
9279 PositionFinalLimited = Time56;
9280 }
9281 }
9282
9283 L4_MABX_B.MinMax8 = PositionFinalLimited;
9284
9285 /* End of MinMax: '<S343>/MinMax8' */
9286
9287 /* RelationalOperator: '<S343>/Relational Operator2' incorporates:
9288 * Constant: '<S343>/ACCEL_RATE_ABS_MAX_THRESHOLD_MS2_APV'
9289 */
9290 L4_MABX_B.f_accel_rate_greater_than_thres = (L4_MABX_B.MinMax8 >
9291 L4_MABX_P.ACCEL_RATE_ABS_MAX_THRESHOLD_MS);
9292
9293 /* MinMax: '<S343>/MinMax7' */
9294 PositionFinalLimited = L4_MABX_B.AccelerationVector[0];
9295 for (i = 0; i < 32; i++) {
9296 Time56 = L4_MABX_B.AccelerationVector[i + 1];
9297 if (!((PositionFinalLimited < Time56) || rtIsNaN(Time56))) {
9298 PositionFinalLimited = Time56;
9299 }
9300 }
9301
9302 L4_MABX_B.MinMax7 = PositionFinalLimited;
9303
9304 /* End of MinMax: '<S343>/MinMax7' */
9305
9306 /* RelationalOperator: '<S343>/Relational Operator3' incorporates:
9307 * Constant: '<S343>/ACCEL_RATE_ABS_MIN_THRESHOLD_MS2_APV'
9308 */
9309 L4_MABX_B.f_decel_rate_greater_than_thres = (L4_MABX_B.MinMax7 <
9310 L4_MABX_P.ACCEL_RATE_ABS_MIN_THRESHOLD_MS);
9311
9312 /* MinMax: '<S343>/MinMax10' */
9313 PositionFinalLimited = L4_MABX_B.JerkVector[0];
9314 for (i = 0; i < 32; i++) {
9315 Time56 = L4_MABX_B.JerkVector[i + 1];
9316 if (!((PositionFinalLimited > Time56) || rtIsNaN(Time56))) {
9317 PositionFinalLimited = Time56;
9318 }
9319 }
9320
9321 L4_MABX_B.MinMax10 = PositionFinalLimited;
9322
9323 /* End of MinMax: '<S343>/MinMax10' */
9324
9325 /* RelationalOperator: '<S343>/Relational Operator4' incorporates:
9326 * Constant: '<S343>/JERK_RATE_ABS_MAX_THRESHOLD_MS3_APV'
9327 */
9328 L4_MABX_B.f_jerk_rate_greater_than_thresh = (L4_MABX_B.MinMax10 >
9329 L4_MABX_P.JERK_RATE_ABS_MAX_THRESHOLD_MS3);
9330
9331 /* MinMax: '<S343>/MinMax9' */
9332 PositionFinalLimited = L4_MABX_B.JerkVector[0];
9333 for (i = 0; i < 32; i++) {
9334 Time56 = L4_MABX_B.JerkVector[i + 1];
9335 if (!((PositionFinalLimited < Time56) || rtIsNaN(Time56))) {
9336 PositionFinalLimited = Time56;
9337 }
9338 }
9339
9340 L4_MABX_B.MinMax9 = PositionFinalLimited;
9341
9342 /* End of MinMax: '<S343>/MinMax9' */
9343
9344 /* RelationalOperator: '<S343>/Relational Operator5' incorporates:
9345 * Constant: '<S343>/JERK_RATE_ABS_MIN_THRESHOLD_MS3_APV'
9346 */
9347 L4_MABX_B.f_jerk_rate_greater_than_thre_n = (L4_MABX_B.MinMax9 <
9348 L4_MABX_P.JERK_RATE_ABS_MIN_THRESHOLD_MS3);
9349
9350 /* Sum: '<S343>/Subtract2' */
9351 L4_MABX_B.Subtract2 = L4_MABX_B.Distance_to_achieve_speed_targe -
9352 L4_MABX_B.PositionVector[32];
9353
9354 /* Abs: '<S343>/Abs2' */
9355 L4_MABX_B.Abs2 = fabs(L4_MABX_B.Subtract2);
9356
9357 /* RelationalOperator: '<S343>/Relational Operator6' incorporates:
9358 * Constant: '<S343>/MAX_DISTANCE_DELTA_THRESHOLD_M_APV'
9359 */
9360 L4_MABX_B.RelationalOperator6_i = (L4_MABX_B.Abs2 >
9361 L4_MABX_P.MAX_DISTANCE_DELTA_THRESHOLD_M_);
9362
9363 /* Logic: '<S343>/Logical Operator3' */
9364 L4_MABX_B.f_distance_max_delta_greater_th = (L4_MABX_B.RelationalOperator6_i &&
9365 L4_MABX_B.LogicalOperator1_p);
9366
9367 /* Logic: '<S343>/Logical Operator4' */
9368 L4_MABX_B.F_Inhibit_sigmoid_vector_shapin =
9369 (L4_MABX_B.f_vspd_output_less_than_zero ||
9370 L4_MABX_B.f_vspd_min_delta_greater_than_t ||
9371 L4_MABX_B.f_vspd_max_delta_greater_than_t ||
9372 L4_MABX_B.f_accel_rate_greater_than_thres ||
9373 L4_MABX_B.f_decel_rate_greater_than_thres ||
9374 L4_MABX_B.f_jerk_rate_greater_than_thresh ||
9375 L4_MABX_B.f_jerk_rate_greater_than_thre_n ||
9376 L4_MABX_B.f_distance_max_delta_greater_th);
9377
9378 /* Logic: '<S81>/Logical Operator' */
9379 L4_MABX_B.LogicalOperator_n = !L4_MABX_B.F_Inhibit_sigmoid_vector_shapin;
9380
9381 /* Logic: '<S81>/Logical Operator2' */
9382 L4_MABX_B.LogicalOperator2_ft = (L4_MABX_B.Compare_jr &&
9383 L4_MABX_B.LogicalOperator_n);
9384
9385 /* RelationalOperator: '<S344>/Relational Operator3' incorporates:
9386 * Constant: '<S344>/CPV1'
9387 */
9388 L4_MABX_B.RelationalOperator3_k = (L4_MABX_B.Saturation5 <
9389 L4_MABX_P.CPV1_Value_i);
9390
9391 /* RelationalOperator: '<S344>/Relational Operator1' incorporates:
9392 * Constant: '<S331>/MIN_VSPD_SIGMOID_INITIAL_KPH_APV'
9393 */
9394 L4_MABX_B.RelationalOperator1_hj = (L4_MABX_B.If_Then_Else_og.Switch <
9395 L4_MABX_P.MIN_VSPD_SIGMOID_INITIAL_KPH_AP);
9396
9397 /* Logic: '<S344>/Logical Operator' */
9398 L4_MABX_B.LogicalOperator_da = (L4_MABX_B.RelationalOperator3_k ||
9399 L4_MABX_B.RelationalOperator1_hj);
9400
9401 /* RelationalOperator: '<S344>/Relational Operator2' incorporates:
9402 * Constant: '<S331>/MIN_VSPD_SIGMOID_FINAL_KPH_APV'
9403 */
9404 L4_MABX_B.RelationalOperator2_g = (L4_MABX_B.VSPD_TARGET_KPH_APV_gu <
9405 L4_MABX_P.MIN_VSPD_SIGMOID_FINAL_KPH_APV_);
9406
9407 /* Logic: '<S344>/Logical Operator2' */
9408 L4_MABX_B.F_set_max_distance_accumulated = (L4_MABX_B.LogicalOperator_da &&
9409 L4_MABX_B.RelationalOperator2_g);
9410
9411 /* UnitDelay: '<S358>/FixPt Unit Delay2' */
9412 L4_MABX_B.FixPtUnitDelay2_o = L4_MABX_DW.FixPtUnitDelay2_DSTATE_f;
9413
9414 /* Logic: '<S358>/FixPt Logical Operator' */
9415 L4_MABX_B.FixPtLogicalOperator = (uint8_T)(L4_MABX_B.LogicalOperator1_ja ||
9416 (L4_MABX_B.FixPtUnitDelay2_o != 0));
9417
9418 /* UnitDelay: '<S358>/FixPt Unit Delay1' */
9419 L4_MABX_B.Xold_pg = L4_MABX_DW.FixPtUnitDelay1_DSTATE_l;
9420
9421 /* Switch: '<S358>/Init' incorporates:
9422 * Constant: '<S353>/CPV'
9423 */
9424 if (L4_MABX_B.FixPtLogicalOperator != 0) {
9425 L4_MABX_B.Init_h = L4_MABX_P.CPV_Value_h;
9426 } else {
9427 L4_MABX_B.Init_h = L4_MABX_B.Xold_pg;
9428 }
9429
9430 /* End of Switch: '<S358>/Init' */
9431
9432 /* Gain: '<S344>/Gain1' */
9433 L4_MABX_B.Gain1_c = L4_MABX_P.Gain1_Gain_k * L4_MABX_B.Saturation5;
9434
9435 /* DigitalClock: '<S356>/Digital Clock' */
9436 L4_MABX_B.DigitalClock_f = L4_MABX_M->Timing.t[0];
9437
9438 /* UnitDelay: '<S356>/Unit_Delay' */
9439 L4_MABX_B.Unit_Delay_ew = L4_MABX_DW.Unit_Delay_DSTATE_p;
9440
9441 /* Sum: '<S356>/Subtract' */
9442 L4_MABX_B.Subtract_b = L4_MABX_B.DigitalClock_f - L4_MABX_B.Unit_Delay_ew;
9443
9444 /* Product: '<S353>/Product1' incorporates:
9445 * Constant: '<S352>/CPV1'
9446 */
9447 L4_MABX_B.Product1_aq = L4_MABX_P.CPV1_Value_e * L4_MABX_B.Gain1_c *
9448 L4_MABX_B.Subtract_b;
9449
9450 /* Sum: '<S353>/Add' */
9451 L4_MABX_B.Add_h = L4_MABX_B.Init_h + L4_MABX_B.Product1_aq;
9452
9453 /* MinMax: '<S353>/MinMax' */
9454 DeltaTime = L4_MABX_B.Distance_to_achieve_speed_targe;
9455 PositionFinalLimited = L4_MABX_B.Add_h;
9456 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9457 PositionFinalLimited = DeltaTime;
9458 }
9459
9460 L4_MABX_B.MinMax_a = PositionFinalLimited;
9461
9462 /* End of MinMax: '<S353>/MinMax' */
9463
9464 /* Outputs for Atomic SubSystem: '<S353>/If_Then_Else' */
9465 L4_MABX_If_Then_Else_g(L4_MABX_B.F_set_max_distance_accumulated,
9466 L4_MABX_B.Distance_to_achieve_speed_targe, L4_MABX_B.MinMax_a,
9467 &L4_MABX_B.If_Then_Else_gf);
9468
9469 /* End of Outputs for SubSystem: '<S353>/If_Then_Else' */
9470
9471 /* RelationalOperator: '<S344>/Relational Operator' */
9472 L4_MABX_B.RelationalOperator_l = (L4_MABX_B.If_Then_Else_gf.Switch ==
9473 L4_MABX_B.Distance_to_achieve_speed_targe);
9474
9475 /* S-Function (sfix_look1_dyn): '<S344>/Lookup Table Dynamic' */
9476 /* Dynamic Look-Up Table Block: '<S344>/Lookup Table Dynamic'
9477 * Input0 Data Type: Floating Point real_T
9478 * Input1 Data Type: Floating Point real_T
9479 * Input2 Data Type: Floating Point real_T
9480 * Output0 Data Type: Floating Point real_T
9481 * Lookup Method: Linear_Endpoint
9482 *
9483 */
9484 LookUp_real_T_real_T( &(L4_MABX_B.LookupTableDynamic),
9485 &L4_MABX_B.Vehicle_speed_vector_kph[0],
9486 L4_MABX_B.If_Then_Else_gf.Switch,
9487 &L4_MABX_B.PositionVector[0], 32U);
9488
9489 /* Outputs for Atomic SubSystem: '<S344>/If_Then_Else' */
9490 L4_MABX_If_Then_Else_g(L4_MABX_B.RelationalOperator_l,
9491 L4_MABX_B.VSPD_TARGET_KPH_APV_gu, L4_MABX_B.LookupTableDynamic,
9492 &L4_MABX_B.If_Then_Else_j);
9493
9494 /* End of Outputs for SubSystem: '<S344>/If_Then_Else' */
9495
9496 /* UnitDelay: '<S336>/Delay Input1' */
9497 L4_MABX_B.Uk1_k[0] = L4_MABX_DW.DelayInput1_DSTATE_f[0];
9498 L4_MABX_B.Uk1_k[1] = L4_MABX_DW.DelayInput1_DSTATE_f[1];
9499
9500 /* RelationalOperator: '<S336>/FixPt Relational Operator' */
9501 L4_MABX_B.FixPtRelationalOperator_p[0] =
9502 (L4_MABX_B.Distance_to_achieve_speed_targe != L4_MABX_B.Uk1_k[0]);
9503 L4_MABX_B.FixPtRelationalOperator_p[1] = (L4_MABX_B.Vehicle_speed_target_o !=
9504 L4_MABX_B.Uk1_k[1]);
9505
9506 /* Logic: '<S330>/Logical Operator' */
9507 L4_MABX_B.LogicalOperator_g = (L4_MABX_B.FixPtRelationalOperator_p[0] ||
9508 L4_MABX_B.FixPtRelationalOperator_p[1]);
9509
9510 /* UnitDelay: '<S338>/Unit_Delay' */
9511 L4_MABX_B.Unit_Delay_ls = L4_MABX_DW.Unit_Delay_DSTATE_l;
9512
9513 /* Logic: '<S338>/Logical Operator1' */
9514 L4_MABX_B.LogicalOperator1_lp = (L4_MABX_B.LogicalOperator_g ||
9515 L4_MABX_B.Unit_Delay_ls);
9516
9517 /* UnitDelay: '<S342>/FixPt Unit Delay2' */
9518 L4_MABX_B.FixPtUnitDelay2_n = L4_MABX_DW.FixPtUnitDelay2_DSTATE_cn;
9519
9520 /* UnitDelay: '<S342>/FixPt Unit Delay1' */
9521 L4_MABX_B.Xold_o = L4_MABX_DW.FixPtUnitDelay1_DSTATE_ej;
9522
9523 /* Switch: '<S342>/Init' */
9524 if (L4_MABX_B.FixPtUnitDelay2_n != 0) {
9525 L4_MABX_B.Init_p = L4_MABX_B.Vehicle_speed_target_o;
9526 } else {
9527 L4_MABX_B.Init_p = L4_MABX_B.Xold_o;
9528 }
9529
9530 /* End of Switch: '<S342>/Init' */
9531
9532 /* UnitDelay: '<S337>/Unit_Delay' */
9533 L4_MABX_B.Vehicle_speed_target_c = L4_MABX_DW.Unit_Delay_1_DSTATE_j;
9534 L4_MABX_B.Vehicle_speed = L4_MABX_DW.Unit_Delay_2_DSTATE_e;
9535 L4_MABX_B.Distance_m = L4_MABX_DW.Unit_Delay_3_DSTATE_j;
9536
9537 /* Outputs for Atomic SubSystem: '<S337>/If_Then_Else' */
9538 L4_MABX_If_Then_Else_m(L4_MABX_B.LogicalOperator_g,
9539 L4_MABX_B.Vehicle_speed_target_o, L4_MABX_B.SFunction1_o1_c4,
9540 L4_MABX_B.Distance_to_achieve_speed_targe, L4_MABX_B.Vehicle_speed_target_c,
9541 L4_MABX_B.Vehicle_speed, L4_MABX_B.Distance_m, &L4_MABX_B.If_Then_Else_mm);
9542
9543 /* End of Outputs for SubSystem: '<S337>/If_Then_Else' */
9544
9545 /* Sum: '<S337>/Subtract' */
9546 L4_MABX_B.err = L4_MABX_B.If_Then_Else_mm.Vehicle_speed -
9547 L4_MABX_B.If_Then_Else_mm.Vehicle_speed_target;
9548
9549 /* Abs: '<S337>/Abs2' */
9550 L4_MABX_B.err_abs = fabs(L4_MABX_B.err);
9551
9552 /* Gain: '<S337>/Gain2' */
9553 L4_MABX_B.Gain2_k = L4_MABX_P.Gain2_Gain_l *
9554 L4_MABX_B.If_Then_Else_mm.Vehicle_speed;
9555
9556 /* Saturate: '<S337>/Saturation4' */
9557 DeltaTime = L4_MABX_B.Gain2_k;
9558 Time56 = L4_MABX_P.Saturation4_LowerSat_e;
9559 PositionFinalLimited = L4_MABX_P.Saturation4_UpperSat_a;
9560 if (DeltaTime > PositionFinalLimited) {
9561 L4_MABX_B.Saturation4 = PositionFinalLimited;
9562 } else if (DeltaTime < Time56) {
9563 L4_MABX_B.Saturation4 = Time56;
9564 } else {
9565 L4_MABX_B.Saturation4 = DeltaTime;
9566 }
9567
9568 /* End of Saturate: '<S337>/Saturation4' */
9569
9570 /* Product: '<S337>/Divide2' */
9571 L4_MABX_B.time_to_target_vspd_secs = L4_MABX_B.If_Then_Else_mm.Distance_m /
9572 L4_MABX_B.Saturation4;
9573
9574 /* DigitalClock: '<S335>/Digital Clock' */
9575 L4_MABX_B.DigitalClock_p = L4_MABX_M->Timing.t[0];
9576
9577 /* UnitDelay: '<S335>/Unit_Delay' */
9578 L4_MABX_B.Unit_Delay_b = L4_MABX_DW.Unit_Delay_DSTATE_f;
9579
9580 /* Sum: '<S335>/Subtract' */
9581 L4_MABX_B.Subtract_g = L4_MABX_B.DigitalClock_p - L4_MABX_B.Unit_Delay_b;
9582
9583 /* MinMax: '<S337>/MinMax3' */
9584 DeltaTime = L4_MABX_B.time_to_target_vspd_secs;
9585 PositionFinalLimited = L4_MABX_B.Subtract_g;
9586 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9587 PositionFinalLimited = DeltaTime;
9588 }
9589
9590 L4_MABX_B.MinMax3_n = PositionFinalLimited;
9591
9592 /* End of MinMax: '<S337>/MinMax3' */
9593
9594 /* Saturate: '<S337>/Saturation1' */
9595 DeltaTime = L4_MABX_B.MinMax3_n;
9596 Time56 = L4_MABX_P.Saturation1_LowerSat_o;
9597 PositionFinalLimited = L4_MABX_P.Saturation1_UpperSat_j;
9598 if (DeltaTime > PositionFinalLimited) {
9599 L4_MABX_B.Saturation1_e = PositionFinalLimited;
9600 } else if (DeltaTime < Time56) {
9601 L4_MABX_B.Saturation1_e = Time56;
9602 } else {
9603 L4_MABX_B.Saturation1_e = DeltaTime;
9604 }
9605
9606 /* End of Saturate: '<S337>/Saturation1' */
9607
9608 /* Product: '<S337>/Divide' */
9609 L4_MABX_B.Divide_e = L4_MABX_B.err_abs / L4_MABX_B.Saturation1_e;
9610
9611 /* Abs: '<S338>/Abs' */
9612 L4_MABX_B.Abs_ma = fabs(L4_MABX_B.Divide_e);
9613
9614 /* Product: '<S338>/Product1' */
9615 L4_MABX_B.Product1_iv = L4_MABX_B.Abs_ma * L4_MABX_B.Subtract_g;
9616
9617 /* Sum: '<S338>/Add1' */
9618 L4_MABX_B.Add1_bf = L4_MABX_B.Init_p + L4_MABX_B.Product1_iv;
9619
9620 /* MinMax: '<S338>/MinMax2' */
9621 DeltaTime = L4_MABX_B.Vehicle_speed_target_o;
9622 PositionFinalLimited = L4_MABX_B.Add1_bf;
9623 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9624 PositionFinalLimited = DeltaTime;
9625 }
9626
9627 L4_MABX_B.MinMax2_c = PositionFinalLimited;
9628
9629 /* End of MinMax: '<S338>/MinMax2' */
9630
9631 /* Abs: '<S338>/Abs1' */
9632 L4_MABX_B.Abs1_f = fabs(L4_MABX_B.Divide_e);
9633
9634 /* Product: '<S338>/Product2' */
9635 L4_MABX_B.Product2_m = L4_MABX_B.Subtract_g * L4_MABX_B.Abs1_f;
9636
9637 /* Sum: '<S338>/Subtract1' */
9638 L4_MABX_B.Subtract1_h2 = L4_MABX_B.Init_p - L4_MABX_B.Product2_m;
9639
9640 /* MinMax: '<S338>/MinMax1' */
9641 DeltaTime = L4_MABX_B.MinMax2_c;
9642 PositionFinalLimited = L4_MABX_B.Subtract1_h2;
9643 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9644 PositionFinalLimited = DeltaTime;
9645 }
9646
9647 L4_MABX_B.MinMax1_p = PositionFinalLimited;
9648
9649 /* End of MinMax: '<S338>/MinMax1' */
9650
9651 /* Outputs for Atomic SubSystem: '<S338>/If_Then_Else' */
9652 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_lp, L4_MABX_B.SFunction1_o1_c4,
9653 L4_MABX_B.MinMax1_p, &L4_MABX_B.If_Then_Else_pz);
9654
9655 /* End of Outputs for SubSystem: '<S338>/If_Then_Else' */
9656
9657 /* Outputs for Atomic SubSystem: '<S81>/If_Then_Else' */
9658 L4_MABX_If_Then_Else_g(L4_MABX_B.LogicalOperator2_ft,
9659 L4_MABX_B.If_Then_Else_j.Switch, L4_MABX_B.If_Then_Else_pz.Switch,
9660 &L4_MABX_B.If_Then_Else_ji);
9661
9662 /* End of Outputs for SubSystem: '<S81>/If_Then_Else' */
9663
9664 /* MinMax: '<S81>/MinMax' */
9665 DeltaTime = L4_MABX_B.If_Then_Else_m4.Switch;
9666 PositionFinalLimited = L4_MABX_B.If_Then_Else_bf.Switch;
9667 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9668 PositionFinalLimited = DeltaTime;
9669 }
9670
9671 Time56 = L4_MABX_B.Vehicle_speed_abs_max;
9672 if (!((PositionFinalLimited < Time56) || rtIsNaN(Time56))) {
9673 PositionFinalLimited = Time56;
9674 }
9675
9676 Time56 = L4_MABX_B.If_Then_Else_ji.Switch;
9677 if (!((PositionFinalLimited < Time56) || rtIsNaN(Time56))) {
9678 PositionFinalLimited = Time56;
9679 }
9680
9681 L4_MABX_B.MinMax_o = PositionFinalLimited;
9682
9683 /* End of MinMax: '<S81>/MinMax' */
9684
9685 /* Saturate: '<S81>/Saturation8' */
9686 DeltaTime = L4_MABX_B.MinMax_o;
9687 Time56 = L4_MABX_P.Saturation8_LowerSat;
9688 PositionFinalLimited = L4_MABX_P.Saturation8_UpperSat;
9689 if (DeltaTime > PositionFinalLimited) {
9690 L4_MABX_B.Vehicle_speed_target_n = PositionFinalLimited;
9691 } else if (DeltaTime < Time56) {
9692 L4_MABX_B.Vehicle_speed_target_n = Time56;
9693 } else {
9694 L4_MABX_B.Vehicle_speed_target_n = DeltaTime;
9695 }
9696
9697 /* End of Saturate: '<S81>/Saturation8' */
9698
9699 /* Lookup_n-D: '<S194>/2D_Lookup_Table' */
9700 L4_MABX_B.uD_Lookup_Table_l = look2_binlcapw(0.0,
9701 L4_MABX_B.SPN1760_GrossCombinationVehicle, BRK_GOV_FF_DECEL_RATE_STEP_MPV,
9702 BRK_GOV_FF_MASS_STEP_MPV, BRK_GOV_FF_PRESS_KPA_DATA_MPV,
9703 L4_MABX_P.uD_Lookup_Table_maxIndex_e, 16U);
9704
9705 /* Product: '<S100>/Divide' */
9706 L4_MABX_B.Divide_f = L4_MABX_B.uD_Lookup_Table_l /
9707 L4_MABX_B.Primary_brake_circuit_pressur_n;
9708
9709 /* Gain: '<S100>/Gain1' */
9710 L4_MABX_B.Gain1_ll = L4_MABX_P.Gain1_Gain_o * L4_MABX_B.Divide_f;
9711
9712 /* Saturate: '<S100>/Saturation1' */
9713 DeltaTime = L4_MABX_B.Gain1_ll;
9714 Time56 = L4_MABX_P.Saturation1_LowerSat_n;
9715 PositionFinalLimited = L4_MABX_P.Saturation1_UpperSat_l;
9716 if (DeltaTime > PositionFinalLimited) {
9717 L4_MABX_B.Brake_appl_percent_to_achieve_d = PositionFinalLimited;
9718 } else if (DeltaTime < Time56) {
9719 L4_MABX_B.Brake_appl_percent_to_achieve_d = Time56;
9720 } else {
9721 L4_MABX_B.Brake_appl_percent_to_achieve_d = DeltaTime;
9722 }
9723
9724 /* End of Saturate: '<S100>/Saturation1' */
9725
9726 /* Saturate: '<S81>/Saturation2' incorporates:
9727 * Constant: '<S81>/ACCEL_LIM_MS2_APV'
9728 */
9729 DeltaTime = L4_MABX_P.ACCEL_LIM_MS2_APV_Value;
9730 Time56 = L4_MABX_P.Saturation2_LowerSat_l;
9731 PositionFinalLimited = L4_MABX_P.Saturation2_UpperSat_a;
9732 if (DeltaTime > PositionFinalLimited) {
9733 L4_MABX_B.ACCEL_LIM_MS2_APV_b = PositionFinalLimited;
9734 } else if (DeltaTime < Time56) {
9735 L4_MABX_B.ACCEL_LIM_MS2_APV_b = Time56;
9736 } else {
9737 L4_MABX_B.ACCEL_LIM_MS2_APV_b = DeltaTime;
9738 }
9739
9740 /* End of Saturate: '<S81>/Saturation2' */
9741
9742 /* Lookup_n-D: '<S195>/2D_Lookup_Table' */
9743 L4_MABX_B.uD_Lookup_Table_i = look2_binlcapw(L4_MABX_B.ACCEL_LIM_MS2_APV_b,
9744 L4_MABX_B.SPN1760_GrossCombinationVehicle, BRK_GOV_FF_DECEL_RATE_STEP_MPV,
9745 BRK_GOV_FF_MASS_STEP_MPV, BRK_GOV_FF_PRESS_KPA_DATA_MPV,
9746 L4_MABX_P.uD_Lookup_Table_maxIndex_n, 16U);
9747
9748 /* Product: '<S100>/Divide1' */
9749 L4_MABX_B.Divide1_f = L4_MABX_B.uD_Lookup_Table_i /
9750 L4_MABX_B.Primary_brake_circuit_pressur_n;
9751
9752 /* Gain: '<S100>/Gain2' */
9753 L4_MABX_B.Gain2_e = L4_MABX_P.Gain2_Gain_b * L4_MABX_B.Divide1_f;
9754
9755 /* Saturate: '<S100>/Saturation2' */
9756 DeltaTime = L4_MABX_B.Gain2_e;
9757 Time56 = L4_MABX_P.Saturation2_LowerSat_o;
9758 PositionFinalLimited = L4_MABX_P.Saturation2_UpperSat_b;
9759 if (DeltaTime > PositionFinalLimited) {
9760 L4_MABX_B.Brake_appl_percent_for_maximum_ = PositionFinalLimited;
9761 } else if (DeltaTime < Time56) {
9762 L4_MABX_B.Brake_appl_percent_for_maximum_ = Time56;
9763 } else {
9764 L4_MABX_B.Brake_appl_percent_for_maximum_ = DeltaTime;
9765 }
9766
9767 /* End of Saturate: '<S100>/Saturation2' */
9768
9769 /* DataTypeConversion: '<S77>/Data Type Conversion2' */
9770 L4_MABX_B.DataTypeConversion2_l3 = L4_MABX_B.SPN1760_GrossCombinationVehicle;
9771
9772 /* Outputs for Enabled SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' incorporates:
9773 * EnablePort: '<S97>/Enable'
9774 */
9775 if (L4_MABX_B.F_Brake_control_active) {
9776 if (!L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba) {
9777 /* InitializeConditions for UnitDelay: '<S140>/Unit_Delay' */
9778 L4_MABX_DW.Unit_Delay_DSTATE_eu = L4_MABX_P.Unit_Delay_InitialCondition_f;
9779
9780 /* InitializeConditions for UnitDelay: '<S147>/Unit_Delay' */
9781 L4_MABX_DW.Unit_Delay_DSTATE_n = L4_MABX_P.Unit_Delay_InitialCondition_jb;
9782
9783 /* InitializeConditions for UnitDelay: '<S167>/Unit_Delay1' */
9784 L4_MABX_DW.Unit_Delay1_DSTATE_f = L4_MABX_P.Unit_Delay1_InitialCondition_p;
9785
9786 /* InitializeConditions for UnitDelay: '<S168>/Unit_Delay' */
9787 L4_MABX_DW.Unit_Delay_DSTATE_g4 = L4_MABX_P.Unit_Delay_InitialCondition_lq;
9788
9789 /* InitializeConditions for UnitDelay: '<S172>/FixPt Unit Delay2' */
9790 L4_MABX_DW.FixPtUnitDelay2_DSTATE_o =
9791 L4_MABX_P.FixPtUnitDelay2_InitialCondit_p;
9792
9793 /* InitializeConditions for UnitDelay: '<S172>/FixPt Unit Delay1' */
9794 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g2 =
9795 L4_MABX_P.FixPtUnitDelay1_InitialCondit_b;
9796
9797 /* InitializeConditions for UnitDelay: '<S167>/Unit_Delay2' */
9798 L4_MABX_DW.Unit_Delay2_DSTATE_c = L4_MABX_P.Unit_Delay2_InitialCondition_b;
9799
9800 /* InitializeConditions for UnitDelay: '<S139>/Unit_Delay' */
9801 L4_MABX_DW.Unit_Delay_DSTATE_h = L4_MABX_P.Unit_Delay_InitialCondition_h;
9802 L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba = true;
9803 }
9804
9805 /* Lookup_n-D: '<S141>/1D_Lookup_Table' */
9806 L4_MABX_B.uD_Lookup_Table_f = look1_binlcapw
9807 (L4_MABX_B.DataTypeConversion2_l3, BRK_DEM_MASS_STEP_MPV,
9808 BRK_DEM_KP_DATA_MPV, 7U);
9809
9810 /* Lookup_n-D: '<S142>/1D_Lookup_Table' */
9811 L4_MABX_B.uD_Lookup_Table_p = look1_binlcapw
9812 (L4_MABX_B.DataTypeConversion2_l3, BRK_DEM_MASS_STEP_MPV,
9813 BRK_DEM_KI_DATA_MPV, 7U);
9814
9815 /* Lookup_n-D: '<S143>/1D_Lookup_Table' */
9816 L4_MABX_B.uD_Lookup_Table_o5 = look1_binlcapw
9817 (L4_MABX_B.DataTypeConversion2_l3, BRK_DEM_MASS_STEP_MPV,
9818 BRK_DEM_KD_DATA_MPV, 7U);
9819
9820 /* Abs: '<S144>/Abs' */
9821 L4_MABX_B.Abs_k = fabs(L4_MABX_B.uD_Lookup_Table_p);
9822
9823 /* Abs: '<S144>/Abs1' */
9824 L4_MABX_B.Abs1_eg = fabs(L4_MABX_B.uD_Lookup_Table_o5);
9825
9826 /* DigitalClock: '<S140>/Digital Clock' */
9827 L4_MABX_B.DigitalClock_n = L4_MABX_M->Timing.t[0];
9828
9829 /* UnitDelay: '<S140>/Unit_Delay' */
9830 L4_MABX_B.Unit_Delay_ko = L4_MABX_DW.Unit_Delay_DSTATE_eu;
9831
9832 /* Sum: '<S140>/Subtract' */
9833 L4_MABX_B.Subtract_ac = L4_MABX_B.DigitalClock_n - L4_MABX_B.Unit_Delay_ko;
9834
9835 /* UnitDelay: '<S147>/Unit_Delay' */
9836 L4_MABX_B.Unit_Delay_m1 = L4_MABX_DW.Unit_Delay_DSTATE_n;
9837
9838 /* Logic: '<S147>/Logical Operator1' incorporates:
9839 * Constant: '<S97>/CPV2'
9840 */
9841 L4_MABX_B.LogicalOperator1_pf = (L4_MABX_B.Unit_Delay_m1 ||
9842 L4_MABX_P.CPV2_Value_a);
9843
9844 /* UnitDelay: '<S167>/Unit_Delay1' */
9845 L4_MABX_B.Unit_Delay1_jk = L4_MABX_DW.Unit_Delay1_DSTATE_f;
9846
9847 /* Logic: '<S167>/Logical Operator' */
9848 L4_MABX_B.LogicalOperator_lo = (L4_MABX_B.LogicalOperator1_pf ||
9849 L4_MABX_B.Unit_Delay1_jk);
9850
9851 /* UnitDelay: '<S168>/Unit_Delay' */
9852 L4_MABX_B.Unit_Delay_li = L4_MABX_DW.Unit_Delay_DSTATE_g4;
9853
9854 /* Logic: '<S168>/Logical Operator1' */
9855 L4_MABX_B.LogicalOperator1_oy = (L4_MABX_B.LogicalOperator1_pf ||
9856 L4_MABX_B.Unit_Delay_li);
9857
9858 /* UnitDelay: '<S172>/FixPt Unit Delay2' */
9859 L4_MABX_B.FixPtUnitDelay2_mf = L4_MABX_DW.FixPtUnitDelay2_DSTATE_o;
9860
9861 /* UnitDelay: '<S172>/FixPt Unit Delay1' */
9862 L4_MABX_B.Xold_c = L4_MABX_DW.FixPtUnitDelay1_DSTATE_g2;
9863
9864 /* Switch: '<S172>/Init' */
9865 if (L4_MABX_B.FixPtUnitDelay2_mf != 0) {
9866 L4_MABX_B.Init_cy = L4_MABX_B.Vehicle_speed_target_n;
9867 } else {
9868 L4_MABX_B.Init_cy = L4_MABX_B.Xold_c;
9869 }
9870
9871 /* End of Switch: '<S172>/Init' */
9872
9873 /* Abs: '<S168>/Abs' incorporates:
9874 * Constant: '<S97>/BRK_DECEL_DEM_SLEW_INC_APV'
9875 */
9876 L4_MABX_B.Abs_o = fabs(L4_MABX_P.BRK_DECEL_DEM_SLEW_INC_APV_Valu);
9877
9878 /* Product: '<S168>/Product1' */
9879 L4_MABX_B.Product1_hy = L4_MABX_B.Abs_o * L4_MABX_B.Subtract_ac;
9880
9881 /* Sum: '<S168>/Add1' */
9882 L4_MABX_B.Add1_o = L4_MABX_B.Init_cy + L4_MABX_B.Product1_hy;
9883
9884 /* MinMax: '<S168>/MinMax2' */
9885 DeltaTime = L4_MABX_B.Vehicle_speed_target_n;
9886 PositionFinalLimited = L4_MABX_B.Add1_o;
9887 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9888 PositionFinalLimited = DeltaTime;
9889 }
9890
9891 L4_MABX_B.MinMax2_p = PositionFinalLimited;
9892
9893 /* End of MinMax: '<S168>/MinMax2' */
9894
9895 /* Abs: '<S168>/Abs1' incorporates:
9896 * Constant: '<S97>/BRK_DECEL_DEM_SLEW_DEC_APV'
9897 */
9898 L4_MABX_B.Abs1_g = fabs(L4_MABX_P.BRK_DECEL_DEM_SLEW_DEC_APV_Valu);
9899
9900 /* Product: '<S168>/Product2' */
9901 L4_MABX_B.Product2_fh = L4_MABX_B.Subtract_ac * L4_MABX_B.Abs1_g;
9902
9903 /* Sum: '<S168>/Subtract1' */
9904 L4_MABX_B.Subtract1_f = L4_MABX_B.Init_cy - L4_MABX_B.Product2_fh;
9905
9906 /* MinMax: '<S168>/MinMax1' */
9907 DeltaTime = L4_MABX_B.MinMax2_p;
9908 PositionFinalLimited = L4_MABX_B.Subtract1_f;
9909 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9910 PositionFinalLimited = DeltaTime;
9911 }
9912
9913 L4_MABX_B.MinMax1_hl = PositionFinalLimited;
9914
9915 /* End of MinMax: '<S168>/MinMax1' */
9916
9917 /* Outputs for Atomic SubSystem: '<S168>/If_Then_Else' */
9918 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_oy,
9919 L4_MABX_B.DataTypeConversion5_o, L4_MABX_B.MinMax1_hl,
9920 &L4_MABX_B.If_Then_Else_iy);
9921
9922 /* End of Outputs for SubSystem: '<S168>/If_Then_Else' */
9923
9924 /* Sum: '<S145>/Subtract' */
9925 L4_MABX_B.Subtract_jh = L4_MABX_B.If_Then_Else_iy.Switch -
9926 L4_MABX_B.DataTypeConversion5_o;
9927
9928 /* MinMax: '<S167>/MinMax1' incorporates:
9929 * Constant: '<S97>/BRK_DECEL_DEM_T_FILT_CTRL_ERROR_APV'
9930 */
9931 DeltaTime = L4_MABX_B.Subtract_ac;
9932 PositionFinalLimited = L4_MABX_P.BRK_DECEL_DEM_T_FILT_CTRL_ERROR;
9933 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9934 PositionFinalLimited = DeltaTime;
9935 }
9936
9937 L4_MABX_B.MinMax1_jg = PositionFinalLimited;
9938
9939 /* End of MinMax: '<S167>/MinMax1' */
9940
9941 /* Saturate: '<S167>/Saturation' */
9942 DeltaTime = L4_MABX_B.MinMax1_jg;
9943 Time56 = L4_MABX_P.Saturation_LowerSat_g;
9944 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_o;
9945 if (DeltaTime > PositionFinalLimited) {
9946 L4_MABX_B.Saturation_m = PositionFinalLimited;
9947 } else if (DeltaTime < Time56) {
9948 L4_MABX_B.Saturation_m = Time56;
9949 } else {
9950 L4_MABX_B.Saturation_m = DeltaTime;
9951 }
9952
9953 /* End of Saturate: '<S167>/Saturation' */
9954
9955 /* Product: '<S167>/Divide' */
9956 L4_MABX_B.Divide_af = L4_MABX_B.Subtract_ac / L4_MABX_B.Saturation_m;
9957
9958 /* Product: '<S167>/Product2' */
9959 L4_MABX_B.Product2_ce = L4_MABX_B.Subtract_jh * L4_MABX_B.Divide_af;
9960
9961 /* Sum: '<S167>/Subtract1' incorporates:
9962 * Constant: '<S167>/Constant1'
9963 */
9964 L4_MABX_B.Subtract1_cr = L4_MABX_P.Constant1_Value_o - L4_MABX_B.Divide_af;
9965
9966 /* UnitDelay: '<S167>/Unit_Delay2' */
9967 L4_MABX_B.Unit_Delay2_a = L4_MABX_DW.Unit_Delay2_DSTATE_c;
9968
9969 /* Product: '<S167>/Product1' */
9970 L4_MABX_B.Product1_ch = L4_MABX_B.Subtract1_cr * L4_MABX_B.Unit_Delay2_a;
9971
9972 /* Sum: '<S167>/Add1' */
9973 L4_MABX_B.Add1_hl = L4_MABX_B.Product2_ce + L4_MABX_B.Product1_ch;
9974
9975 /* Outputs for Atomic SubSystem: '<S167>/If_Then_Else' */
9976 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_lo, L4_MABX_B.Subtract_jh,
9977 L4_MABX_B.Add1_hl, &L4_MABX_B.If_Then_Else_bc);
9978
9979 /* End of Outputs for SubSystem: '<S167>/If_Then_Else' */
9980
9981 /* RelationalOperator: '<S152>/Compare' incorporates:
9982 * Constant: '<S152>/Constant'
9983 */
9984 L4_MABX_B.Compare_ni = (L4_MABX_B.Abs1_eg >
9985 L4_MABX_P.CompareToConstant1_const_m);
9986
9987 /* Outputs for Enabled SubSystem: '<S144>/Calculate_D_term' */
9988
9989 /* Constant: '<S97>/BRK_DECEL_DEM_T_FILT_D_APV' */
9990 L4_MABX_Calculate_D_term(L4_MABX_B.Compare_ni, L4_MABX_B.uD_Lookup_Table_o5,
9991 L4_MABX_B.Subtract_ac, L4_MABX_B.LogicalOperator1_pf,
9992 L4_MABX_B.If_Then_Else_bc.Switch,
9993 L4_MABX_P.BRK_DECEL_DEM_T_FILT_D_APV_Valu, &L4_MABX_B.Calculate_D_term_p,
9994 &L4_MABX_DW.Calculate_D_term_p, &L4_MABX_P.Calculate_D_term_p);
9995
9996 /* End of Outputs for SubSystem: '<S144>/Calculate_D_term' */
9997
9998 /* Product: '<S150>/Product' */
9999 L4_MABX_B.Product_f = L4_MABX_B.uD_Lookup_Table_f *
10000 L4_MABX_B.If_Then_Else_bc.Switch;
10001
10002 /* UnitDelay: '<S139>/Unit_Delay' */
10003 L4_MABX_B.Unit_Delay_fg = L4_MABX_DW.Unit_Delay_DSTATE_h;
10004
10005 /* RelationalOperator: '<S151>/Compare' incorporates:
10006 * Constant: '<S151>/Constant'
10007 */
10008 L4_MABX_B.Compare_dl = (L4_MABX_B.Abs_k >
10009 L4_MABX_P.CompareToConstant_const_c);
10010
10011 /* Outputs for Enabled SubSystem: '<S144>/Calculate_I_term' */
10012
10013 /* Constant: '<S97>/BRK_DECEL_DEM_AW_COND_INT_APV' incorporates:
10014 * Constant: '<S97>/BRK_DECEL_DEM_AW_HYSTERESIS_APV'
10015 * Constant: '<S97>/CPV1'
10016 */
10017 L4_MABX_Calculate_I_term(L4_MABX_B.Compare_dl, L4_MABX_B.Product_f,
10018 L4_MABX_B.uD_Lookup_Table_p, L4_MABX_B.Brake_appl_percent,
10019 L4_MABX_B.If_Then_Else_bc.Switch, L4_MABX_B.LogicalOperator1_pf,
10020 L4_MABX_B.Subtract_ac, L4_MABX_B.Brake_appl_percent_to_achieve_d,
10021 L4_MABX_P.BRK_DECEL_DEM_AW_COND_INT_APV_V,
10022 L4_MABX_P.BRK_DECEL_DEM_AW_HYSTERESIS_APV, L4_MABX_P.CPV1_Value_no,
10023 L4_MABX_B.Unit_Delay_fg, &L4_MABX_B.Calculate_I_term_e,
10024 &L4_MABX_DW.Calculate_I_term_e, &L4_MABX_P.Calculate_I_term_e);
10025
10026 /* End of Outputs for SubSystem: '<S144>/Calculate_I_term' */
10027
10028 /* RelationalOperator: '<S170>/min_relop' incorporates:
10029 * Constant: '<S170>/min_val'
10030 * Constant: '<S97>/BRK_DECEL_DEM_SLEW_INC_APV'
10031 */
10032 L4_MABX_B.min_relop_a = (L4_MABX_P.CheckStaticLowerBound_min_d <=
10033 L4_MABX_P.BRK_DECEL_DEM_SLEW_INC_APV_Valu);
10034
10035 /* Assertion: '<S170>/Assertion' */
10036 utAssert(L4_MABX_B.min_relop_a);
10037
10038 /* Sum: '<S146>/Add' */
10039 L4_MABX_B.Add_mh = ((L4_MABX_B.Product_f +
10040 L4_MABX_B.Calculate_I_term_e.If_Then_Else.Switch) +
10041 L4_MABX_B.Calculate_D_term_p.Subtract) +
10042 L4_MABX_B.Brake_appl_percent_to_achieve_d;
10043
10044 /* RelationalOperator: '<S173>/Relational Operator1' */
10045 L4_MABX_B.RelationalOperator1_k = (L4_MABX_B.Add_mh >=
10046 L4_MABX_B.Brake_appl_percent_for_maximum_);
10047
10048 /* RelationalOperator: '<S173>/Relational Operator' incorporates:
10049 * Constant: '<S97>/CPV'
10050 */
10051 L4_MABX_B.RelationalOperator_m1 = (L4_MABX_B.Add_mh <= L4_MABX_P.CPV_Value_i);
10052
10053 /* Outputs for Atomic SubSystem: '<S173>/If_Then_Else1' */
10054
10055 /* Constant: '<S97>/CPV' */
10056 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_m1, L4_MABX_P.CPV_Value_i,
10057 L4_MABX_B.Add_mh, &L4_MABX_B.If_Then_Else1_gx);
10058
10059 /* End of Outputs for SubSystem: '<S173>/If_Then_Else1' */
10060
10061 /* Outputs for Atomic SubSystem: '<S173>/If_Then_Else' */
10062 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_k,
10063 L4_MABX_B.Brake_appl_percent_for_maximum_,
10064 L4_MABX_B.If_Then_Else1_gx.Switch,
10065 &L4_MABX_B.If_Then_Else_fo);
10066
10067 /* End of Outputs for SubSystem: '<S173>/If_Then_Else' */
10068 } else {
10069 if (L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba) {
10070 /* Disable for Enabled SubSystem: '<S144>/Calculate_D_term' */
10071 if (L4_MABX_DW.Calculate_D_term_p.Calculate_D_term_MODE) {
10072 L4_Calculate_D_term_Disable(&L4_MABX_B.Calculate_D_term_p,
10073 &L4_MABX_DW.Calculate_D_term_p, &L4_MABX_P.Calculate_D_term_p);
10074 }
10075
10076 /* End of Disable for SubSystem: '<S144>/Calculate_D_term' */
10077
10078 /* Disable for Enabled SubSystem: '<S144>/Calculate_I_term' */
10079 if (L4_MABX_DW.Calculate_I_term_e.Calculate_I_term_MODE) {
10080 L4_Calculate_I_term_Disable(&L4_MABX_B.Calculate_I_term_e,
10081 &L4_MABX_DW.Calculate_I_term_e, &L4_MABX_P.Calculate_I_term_e);
10082 }
10083
10084 /* End of Disable for SubSystem: '<S144>/Calculate_I_term' */
10085
10086 /* Disable for Outport: '<S97>/PID_output' */
10087 L4_MABX_B.If_Then_Else_fo.Switch = L4_MABX_P.PID_output_Y0_p;
10088 L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba = false;
10089 }
10090 }
10091
10092 /* End of Outputs for SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
10093
10094 /* RelationalOperator: '<S98>/Relational Operator2' incorporates:
10095 * Constant: '<S98>/CPV2'
10096 */
10097 L4_MABX_B.F_Driver_braking = (L4_MABX_B.XPRControlMode ==
10098 L4_MABX_P.CPV2_Value_hm);
10099
10100 /* Logic: '<S98>/Logical Operator2' */
10101 L4_MABX_B.F_Operator_brake_appl = (L4_MABX_B.If_Then_Else_la.Switch &&
10102 L4_MABX_B.F_Driver_braking);
10103
10104 /* RelationalOperator: '<S98>/Relational Operator5' incorporates:
10105 * Constant: '<S98>/BENDIX_2C2_BRAKE_APPL_THRESHOLD_KPA_APV'
10106 */
10107 L4_MABX_B.RelationalOperator5[0] = (L4_MABX_B.Bendix_2C2_Primary_brake_circui >
10108 L4_MABX_P.BENDIX_2C2_BRAKE_APPL_THRESHOLD);
10109 L4_MABX_B.RelationalOperator5[1] = (L4_MABX_B.Bendix_2C2_Secondary_brake_circ >
10110 L4_MABX_P.BENDIX_2C2_BRAKE_APPL_THRESHOLD);
10111
10112 /* Logic: '<S98>/Logical Operator6' */
10113 L4_MABX_B.F_Bendix_2C2_service_brake_pres = (L4_MABX_B.RelationalOperator5[0] ||
10114 L4_MABX_B.RelationalOperator5[1]);
10115
10116 /* RelationalOperator: '<S98>/Relational Operator' incorporates:
10117 * Constant: '<S98>/CPV'
10118 */
10119 L4_MABX_B.F_Bendix_2C2_braking = (L4_MABX_B.XPRControlMode ==
10120 L4_MABX_P.CPV_Value_e);
10121
10122 /* Logic: '<S98>/Logical Operator7' */
10123 L4_MABX_B.F_ADAS_brake_appl = (L4_MABX_B.If_Then_Else_la.Switch &&
10124 L4_MABX_B.F_Bendix_2C2_braking && L4_MABX_B.F_Bendix_2C2_service_brake_pres);
10125
10126 /* RelationalOperator: '<S98>/Relational Operator1' incorporates:
10127 * Constant: '<S98>/CPV1'
10128 */
10129 L4_MABX_B.F_ADAS_brake_error = (L4_MABX_B.XPRErrorState !=
10130 L4_MABX_P.CPV1_Value_i5);
10131
10132 /* Lookup_n-D: '<S193>/2D_Lookup_Table' */
10133 L4_MABX_B.uD_Lookup_Table_le = look2_binlcapw
10134 (L4_MABX_B.brake_system_avg_appl_pressure_,
10135 L4_MABX_B.SPN1760_GrossCombinationVehicle, BRK_GOV_FF_PRESS_KPA_STEP_MPV,
10136 BRK_GOV_FF_MASS_STEP_MPV, BRK_GOV_FF_DECEL_RATE_DATA_MPV,
10137 L4_MABX_P.uD_Lookup_Table_maxIndex_m, 16U);
10138
10139 /* Saturate: '<S100>/Saturation4' */
10140 DeltaTime = L4_MABX_B.uD_Lookup_Table_le;
10141 Time56 = L4_MABX_P.Saturation4_LowerSat_a;
10142 PositionFinalLimited = L4_MABX_P.Saturation4_UpperSat_f;
10143 if (DeltaTime > PositionFinalLimited) {
10144 L4_MABX_B.Decel_rate_calculated_ms2 = PositionFinalLimited;
10145 } else if (DeltaTime < Time56) {
10146 L4_MABX_B.Decel_rate_calculated_ms2 = Time56;
10147 } else {
10148 L4_MABX_B.Decel_rate_calculated_ms2 = DeltaTime;
10149 }
10150
10151 /* End of Saturate: '<S100>/Saturation4' */
10152
10153 /* DataTypeConversion: '<S101>/Data Type Conversion' */
10154 L4_MABX_B.DataTypeConversion_pp = L4_MABX_B.SFunction1_o1_gh;
10155
10156 /* DataTypeConversion: '<S101>/Data Type Conversion1' */
10157 L4_MABX_B.DataTypeConversion1_k5 = L4_MABX_B.SFunction1_o2_k5;
10158
10159 /* Sum: '<S101>/Add' */
10160 L4_MABX_B.Add_m = L4_MABX_B.DataTypeConversion_pp +
10161 L4_MABX_B.DataTypeConversion1_k5;
10162
10163 /* UnitDelay: '<S101>/Unit_Delay' */
10164 L4_MABX_B.Unit_Delay_dy = L4_MABX_DW.Unit_Delay_DSTATE_eu4;
10165
10166 /* UnitDelay: '<S197>/Unit_Delay1' */
10167 L4_MABX_B.Unit_Delay1_k = L4_MABX_DW.Unit_Delay1_DSTATE_d;
10168
10169 /* Logic: '<S197>/Logical Operator' */
10170 L4_MABX_B.LogicalOperator_fc = (L4_MABX_B.Unit_Delay_dy ||
10171 L4_MABX_B.Unit_Delay1_k);
10172
10173 /* Gain: '<S101>/Gain' */
10174 L4_MABX_B.Gain_j = L4_MABX_P.Gain_Gain_f * L4_MABX_B.Add_m;
10175
10176 /* MinMax: '<S197>/MinMax1' incorporates:
10177 * Constant: '<S101>/Constant10'
10178 * Constant: '<S101>/VSPD_CAN_HRW_0B_FILT_T_APV'
10179 */
10180 DeltaTime = L4_MABX_P.Constant10_Value;
10181 PositionFinalLimited = L4_MABX_P.VSPD_CAN_HRW_0B_FILT_T_APV_Valu;
10182 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10183 PositionFinalLimited = DeltaTime;
10184 }
10185
10186 L4_MABX_B.MinMax1_i = PositionFinalLimited;
10187
10188 /* End of MinMax: '<S197>/MinMax1' */
10189
10190 /* Saturate: '<S197>/Saturation' */
10191 DeltaTime = L4_MABX_B.MinMax1_i;
10192 Time56 = L4_MABX_P.Saturation_LowerSat_b;
10193 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_l;
10194 if (DeltaTime > PositionFinalLimited) {
10195 L4_MABX_B.Saturation_n = PositionFinalLimited;
10196 } else if (DeltaTime < Time56) {
10197 L4_MABX_B.Saturation_n = Time56;
10198 } else {
10199 L4_MABX_B.Saturation_n = DeltaTime;
10200 }
10201
10202 /* End of Saturate: '<S197>/Saturation' */
10203
10204 /* Product: '<S197>/Divide' incorporates:
10205 * Constant: '<S101>/Constant10'
10206 */
10207 L4_MABX_B.Divide_a = L4_MABX_P.Constant10_Value / L4_MABX_B.Saturation_n;
10208
10209 /* Product: '<S197>/Product2' */
10210 L4_MABX_B.Product2_on = L4_MABX_B.Gain_j * L4_MABX_B.Divide_a;
10211
10212 /* Sum: '<S197>/Subtract1' incorporates:
10213 * Constant: '<S197>/Constant1'
10214 */
10215 L4_MABX_B.Subtract1_ee = L4_MABX_P.Constant1_Value_od - L4_MABX_B.Divide_a;
10216
10217 /* UnitDelay: '<S197>/Unit_Delay2' */
10218 L4_MABX_B.Unit_Delay2_g = L4_MABX_DW.Unit_Delay2_DSTATE_e;
10219
10220 /* Product: '<S197>/Product1' */
10221 L4_MABX_B.Product1_oo = L4_MABX_B.Subtract1_ee * L4_MABX_B.Unit_Delay2_g;
10222
10223 /* Sum: '<S197>/Add1' */
10224 L4_MABX_B.Add1_n1 = L4_MABX_B.Product2_on + L4_MABX_B.Product1_oo;
10225
10226 /* Outputs for Atomic SubSystem: '<S197>/If_Then_Else' */
10227 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_fc, L4_MABX_B.Gain_j,
10228 L4_MABX_B.Add1_n1, &L4_MABX_B.If_Then_Else_g);
10229
10230 /* End of Outputs for SubSystem: '<S197>/If_Then_Else' */
10231
10232 /* SampleTimeMath: '<S196>/TSamp'
10233 *
10234 * About '<S196>/TSamp':
10235 * y = u * K where K = 1 / ( w * Ts )
10236 */
10237 L4_MABX_B.TSamp = L4_MABX_B.If_Then_Else_g.Switch * L4_MABX_P.TSamp_WtEt;
10238
10239 /* UnitDelay: '<S196>/UD' */
10240 L4_MABX_B.Uk1_b = L4_MABX_DW.UD_DSTATE;
10241
10242 /* Sum: '<S196>/Diff' */
10243 L4_MABX_B.Diff = L4_MABX_B.TSamp - L4_MABX_B.Uk1_b;
10244
10245 /* MinMax: '<S77>/MinMax' */
10246 DeltaTime = L4_MABX_B.If_Then_Else_nj.Switch;
10247 PositionFinalLimited = L4_MABX_B.If_Then_Else_fo.Switch;
10248 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10249 PositionFinalLimited = DeltaTime;
10250 }
10251
10252 L4_MABX_B.BrakingPID_Y_percent = PositionFinalLimited;
10253
10254 /* End of MinMax: '<S77>/MinMax' */
10255
10256 /* Gain: '<S77>/Gain' */
10257 L4_MABX_B.BrakingPID_Y_k = L4_MABX_P.Gain_Gain_no *
10258 L4_MABX_B.BrakingPID_Y_percent;
10259
10260 /* DataTypeConversion: '<S79>/Data Type Conversion' */
10261 L4_MABX_B.DataTypeConversion_de = AutonomousEnabled;
10262
10263 /* DataTypeConversion: '<S79>/Data Type Conversion2' */
10264 L4_MABX_B.DataTypeConversion2_lf = (real32_T)L4_MABX_B.SFunction1_o1_c4;
10265
10266 /* DataTypeConversion: '<S79>/Data Type Conversion1' */
10267 PositionFinalLimited = floor(L4_MABX_B.SFunction1_o8_jt);
10268 if (rtIsNaN(PositionFinalLimited) || rtIsInf(PositionFinalLimited)) {
10269 PositionFinalLimited = 0.0;
10270 } else {
10271 PositionFinalLimited = fmod(PositionFinalLimited, 256.0);
10272 }
10273
10274 L4_MABX_B.DataTypeConversion1_f1 = (uint8_T)(PositionFinalLimited < 0.0 ?
10275 (int32_T)(uint8_T)-(int8_T)(uint8_T)-PositionFinalLimited : (int32_T)
10276 (uint8_T)PositionFinalLimited);
10277
10278 /* End of DataTypeConversion: '<S79>/Data Type Conversion1' */
10279
10280 /* Chart: '<S79>/Chart' incorporates:
10281 * Constant: '<S79>/Constant'
10282 */
10283 /* Gateway: STATE_CONTROL_10ms/Chart */
10284 /* During: STATE_CONTROL_10ms/Chart */
10285 if (L4_MABX_DW.is_active_c19_SUB_L4_Task_10ms_ == 0U) {
10286 /* Entry: STATE_CONTROL_10ms/Chart */
10287 L4_MABX_DW.is_active_c19_SUB_L4_Task_10ms_ = 1U;
10288
10289 /* Entry Internal: STATE_CONTROL_10ms/Chart */
10290 /* Transition: '<S201>:2' */
10291 L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA = L4_MABX_IN_Init;
10292
10293 /* Entry 'Init': '<S201>:1' */
10294 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_INIT;
10295 } else {
10296 switch (L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA) {
10297 case L4_MABX_IN_Init:
10298 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_INIT;
10299
10300 /* During 'Init': '<S201>:1' */
10301 if (!L4_MABX_P.Constant_Value_cp) {
10302 /* Transition: '<S201>:9' */
10303 L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA = L4_MABX_IN_OperatorDisabled;
10304
10305 /* Entry 'OperatorDisabled': '<S201>:3' */
10306 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_OPERATOR_DISABLED;
10307 }
10308 break;
10309
10310 case L4_MABX_IN_OperatorDisabled:
10311 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_OPERATOR_DISABLED;
10312
10313 /* During 'OperatorDisabled': '<S201>:3' */
10314 if (L4_MABX_B.DataTypeConversion_de) {
10315 /* Transition: '<S201>:11' */
10316 L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA = L4_MABX_IN_OperatorEnabled;
10317
10318 /* Entry 'OperatorEnabled': '<S201>:10' */
10319 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_AUTO_CTRL_ENABLED;
10320
10321 /* Entry Internal 'OperatorEnabled': '<S201>:10' */
10322 /* Transition: '<S201>:16' */
10323 /* Entry 'AutoControlEnabled': '<S201>:13' */
10324 /* Entry Internal 'AutoControlEnabled': '<S201>:13' */
10325 /* Transition: '<S201>:15' */
10326 /* Entry 'init': '<S201>:14' */
10327 L4_MABX_B.VehCtrlState = ENUM_AUTO_CTRL_VEHICLE_STATE_T_INIT;
10328 }
10329 break;
10330
10331 default:
10332 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_AUTO_CTRL_ENABLED;
10333
10334 /* During 'OperatorEnabled': '<S201>:10' */
10335 if ((!L4_MABX_B.DataTypeConversion_de) || L4_MABX_P.Constant_Value_cp) {
10336 /* Transition: '<S201>:12' */
10337 /* Exit Internal 'OperatorEnabled': '<S201>:10' */
10338 /* Exit Internal 'AutoControlEnabled': '<S201>:13' */
10339 L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA = L4_MABX_IN_OperatorDisabled;
10340
10341 /* Entry 'OperatorDisabled': '<S201>:3' */
10342 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_OPERATOR_DISABLED;
10343 } else {
10344 /* During 'AutoControlEnabled': '<S201>:13' */
10345 L4_MABX_B.VehCtrlState = ENUM_AUTO_CTRL_VEHICLE_STATE_T_INIT;
10346
10347 /* During 'init': '<S201>:14' */
10348 }
10349 break;
10350 }
10351 }
10352
10353 /* End of Chart: '<S79>/Chart' */
10354
10355 /* Outputs for Enabled SubSystem: '<S79>/Engine_speed_target' incorporates:
10356 * EnablePort: '<S204>/Enable'
10357 */
10358 if (L4_MABX_B.LogicalOperator_ke) {
10359 if (!L4_MABX_DW.Engine_speed_target_MODE) {
10360 L4_MABX_DW.Engine_speed_target_MODE = true;
10361 }
10362
10363 /* Gain: '<S204>/KPH_TO_MPH' */
10364 L4_MABX_B.KPH_TO_MPH = L4_MABX_P.KPH_TO_MPH_Gain *
10365 L4_MABX_B.VSPD_TARGET_KPH_APV_g;
10366
10367 /* MinMax: '<S204>/MinMax' incorporates:
10368 * Constant: '<S204>/Constant2'
10369 * Constant: '<S204>/TIRE_DIAM_INCHES_APV'
10370 */
10371 DeltaTime = L4_MABX_P.TIRE_DIAM_INCHES_APV_Value;
10372 PositionFinalLimited = L4_MABX_P.Constant2_Value_m;
10373 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10374 PositionFinalLimited = DeltaTime;
10375 }
10376
10377 L4_MABX_B.MinMax_dl = PositionFinalLimited;
10378
10379 /* End of MinMax: '<S204>/MinMax' */
10380
10381 /* Product: '<S204>/Divide' incorporates:
10382 * Constant: '<S204>/CONVERSION_CONSTANT_CPV'
10383 * Constant: '<S204>/REAR_AXLE_RATIO_VALUE_APV'
10384 */
10385 L4_MABX_B.Divide_p = L4_MABX_B.KPH_TO_MPH *
10386 L4_MABX_B.SPN526_TransActualGearRatio *
10387 L4_MABX_P.REAR_AXLE_RATIO_VALUE_APV_Value *
10388 L4_MABX_P.CONVERSION_CONSTANT_CPV_Value / L4_MABX_B.MinMax_dl;
10389
10390 /* MinMax: '<S204>/MinMax1' incorporates:
10391 * Constant: '<S204>/Constant1'
10392 */
10393 DeltaTime = L4_MABX_B.Divide_p;
10394 PositionFinalLimited = L4_MABX_P.Constant1_Value_f;
10395 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10396 PositionFinalLimited = DeltaTime;
10397 }
10398
10399 L4_MABX_B.MinMax1_n = PositionFinalLimited;
10400
10401 /* End of MinMax: '<S204>/MinMax1' */
10402 } else {
10403 if (L4_MABX_DW.Engine_speed_target_MODE) {
10404 /* Disable for Outport: '<S204>/Out1' */
10405 L4_MABX_B.MinMax1_n = L4_MABX_P.Out1_Y0;
10406 L4_MABX_DW.Engine_speed_target_MODE = false;
10407 }
10408 }
10409
10410 /* End of Outputs for SubSystem: '<S79>/Engine_speed_target' */
10411
10412 /* RelationalOperator: '<S205>/Relational Operator1' incorporates:
10413 * Constant: '<S205>/CPV3'
10414 */
10415 L4_MABX_B.RelationalOperator1_c = (L4_MABX_B.SFunction1_o1_c4 <=
10416 L4_MABX_P.CPV3_Value_n);
10417
10418 /* RelationalOperator: '<S205>/Relational Operator3' incorporates:
10419 * Constant: '<S205>/CPV1'
10420 */
10421 L4_MABX_B.RelationalOperator3_g = (L4_MABX_B.SPN524_TransSelectedGear ==
10422 L4_MABX_P.CPV1_Value_n);
10423
10424 /* RelationalOperator: '<S205>/Relational Operator2' incorporates:
10425 * Constant: '<S205>/CPV2'
10426 */
10427 L4_MABX_B.RelationalOperator2_f = (L4_MABX_B.SPN523_TransCurrentGear ==
10428 L4_MABX_P.CPV2_Value_h);
10429
10430 /* RelationalOperator: '<S205>/Relational Operator4' incorporates:
10431 * Constant: '<S205>/CPV5'
10432 */
10433 L4_MABX_B.RelationalOperator4_o = (L4_MABX_B.SFunction1_o2_ez ==
10434 L4_MABX_P.CPV5_Value_g);
10435
10436 /* Logic: '<S205>/Logical Operator' */
10437 L4_MABX_B.F_Ignition_sw_off_conditions_me = (L4_MABX_B.RelationalOperator1_c &&
10438 L4_MABX_B.RelationalOperator3_g && L4_MABX_B.RelationalOperator2_f &&
10439 L4_MABX_B.RelationalOperator4_o);
10440
10441 /* RelationalOperator: '<S205>/Relational Operator' incorporates:
10442 * Constant: '<S205>/IGN_SW_VOLTAGE_THRESHOLD_APV'
10443 */
10444 L4_MABX_B.F_Ignition_sw_on = (L4_MABX_B.IgnitionKeySwitch_voltage >=
10445 L4_MABX_P.IGN_SW_VOLTAGE_THRESHOLD_APV_Va);
10446
10447 /* SignalConversion: '<S212>/TmpSignal ConversionAt SFunction Inport3' incorporates:
10448 * Chart: '<S205>/Relay_control_state_machine'
10449 * Constant: '<S205>/IGN_RELAY_ON_DELAY_SECS_APV'
10450 * Constant: '<S205>/INVERTER_RELAY_ON_DELAY_SECS_APV'
10451 * Constant: '<S205>/MABX_RELAY_ON_DELAY_SECS_APV'
10452 * Constant: '<S205>/SENSOR_RELAY_ON_DELAY_SECS_APV'
10453 */
10454 L4_MABX_B.TmpSignalConversionAtSFunctionI[0] =
10455 L4_MABX_P.IGN_RELAY_ON_DELAY_SECS_APV_Val;
10456 L4_MABX_B.TmpSignalConversionAtSFunctionI[1] =
10457 L4_MABX_P.INVERTER_RELAY_ON_DELAY_SECS_AP;
10458 L4_MABX_B.TmpSignalConversionAtSFunctionI[2] =
10459 L4_MABX_P.MABX_RELAY_ON_DELAY_SECS_APV_Va;
10460 L4_MABX_B.TmpSignalConversionAtSFunctionI[3] =
10461 L4_MABX_P.SENSOR_RELAY_ON_DELAY_SECS_APV_;
10462
10463 /* SignalConversion: '<S212>/TmpSignal ConversionAt SFunction Inport4' incorporates:
10464 * Chart: '<S205>/Relay_control_state_machine'
10465 * Constant: '<S205>/IGN_RELAY_OFF_DELAY_SECS_APV'
10466 * Constant: '<S205>/INVERTER_RELAY_OFF_DELAY_SECS_APV'
10467 * Constant: '<S205>/MABX_RELAY_OFF_DELAY_SECS_APV'
10468 * Constant: '<S205>/SENSOR_RELAY_OFF_DELAY_SECS_APV'
10469 */
10470 L4_MABX_B.TmpSignalConversionAtSFunctio_k[0] =
10471 L4_MABX_P.IGN_RELAY_OFF_DELAY_SECS_APV_Va;
10472 L4_MABX_B.TmpSignalConversionAtSFunctio_k[1] =
10473 L4_MABX_P.INVERTER_RELAY_OFF_DELAY_SECS_A;
10474 L4_MABX_B.TmpSignalConversionAtSFunctio_k[2] =
10475 L4_MABX_P.MABX_RELAY_OFF_DELAY_SECS_APV_V;
10476 L4_MABX_B.TmpSignalConversionAtSFunctio_k[3] =
10477 L4_MABX_P.SENSOR_RELAY_OFF_DELAY_SECS_APV;
10478
10479 /* Chart: '<S205>/Relay_control_state_machine' */
10480 if (L4_MABX_DW.temporalCounter_i1 < MAX_uint32_T) {
10481 L4_MABX_DW.temporalCounter_i1++;
10482 }
10483
10484 /* Gateway: STATE_CONTROL_10ms/Relay_control/Relay_control_state_machine */
10485 /* During: STATE_CONTROL_10ms/Relay_control/Relay_control_state_machine */
10486 if (L4_MABX_DW.is_active_c6_SUB_L4_Task_10ms_S == 0U) {
10487 /* Entry: STATE_CONTROL_10ms/Relay_control/Relay_control_state_machine */
10488 L4_MABX_DW.is_active_c6_SUB_L4_Task_10ms_S = 1U;
10489
10490 /* Entry Internal: STATE_CONTROL_10ms/Relay_control/Relay_control_state_machine */
10491 /* Transition: '<S212>:13' */
10492 L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT = L4_MABX_IN_INITIAL;
10493 L4_MABX_enter_atomic_INITIAL();
10494 } else {
10495 switch (L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT) {
10496 case L4_MABX_IN_INITIAL:
10497 L4_MABX_B.F_Ignition_relay_command_i = false;
10498 L4_MABX_B.F_Inverter_relay_command_p = false;
10499 L4_MABX_B.F_MABX_relay_command_n = false;
10500 L4_MABX_B.F_Sensor_relay_command_k = false;
10501
10502 /* During 'INITIAL': '<S212>:12' */
10503 if (L4_MABX_B.F_Ignition_sw_on) {
10504 /* Transition: '<S212>:17' */
10505 L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT = L4_MABX_IN_POWER_UP_ROUTINE;
10506
10507 /* Entry Internal 'POWER_UP_ROUTINE': '<S212>:16' */
10508 /* Transition: '<S212>:64' */
10509 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_WAIT;
10510 L4_MABX_DW.temporalCounter_i1 = 0U;
10511 }
10512 break;
10513
10514 case L4_MABX_IN_POWER_DOWN_ROUTINE:
10515 /* During 'POWER_DOWN_ROUTINE': '<S212>:30' */
10516 switch (L4_MABX_DW.is_POWER_DOWN_ROUTINE) {
10517 case L4_MABX_IN_IGN_RELAY_UNLATCH:
10518 L4_MABX_B.F_Ignition_relay_command_i = false;
10519
10520 /* During 'IGN_RELAY_UNLATCH': '<S212>:29' */
10521 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10522 (L4_MABX_DW.INVERTER_RELAY_OFF_DELAY_SECS_A * 100.0)) {
10523 /* Transition: '<S212>:23' */
10524 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_INV_RELAY_UNLATCH;
10525 L4_MABX_DW.temporalCounter_i1 = 0U;
10526
10527 /* Entry 'INV_RELAY_UNLATCH': '<S212>:28' */
10528 L4_MABX_B.F_Inverter_relay_command_p = false;
10529 }
10530 break;
10531
10532 case L4_MABX_IN_INV_RELAY_UNLATCH:
10533 L4_MABX_B.F_Inverter_relay_command_p = false;
10534
10535 /* During 'INV_RELAY_UNLATCH': '<S212>:28' */
10536 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10537 (L4_MABX_DW.SENSOR_RELAY_OFF_DELAY_SECS_APV * 100.0)) {
10538 /* Transition: '<S212>:22' */
10539 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_SENSOR_RELAY_UNLATCH;
10540 L4_MABX_DW.temporalCounter_i1 = 0U;
10541
10542 /* Entry 'SENSOR_RELAY_UNLATCH': '<S212>:25' */
10543 L4_MABX_B.F_Sensor_relay_command_k = false;
10544 }
10545 break;
10546
10547 case L4_MABX_IN_MABX_RELAY_UNLATCH:
10548 L4_MABX_B.F_MABX_relay_command_n = false;
10549
10550 /* During 'MABX_RELAY_UNLATCH': '<S212>:27' */
10551 /* Transition: '<S212>:45' */
10552 /* Transition: '<S212>:46' */
10553 /* Transition: '<S212>:47' */
10554 /* Transition: '<S212>:48' */
10555 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_NO_ACTIVE_CHILD;
10556 L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT = L4_MABX_IN_INITIAL;
10557 L4_MABX_enter_atomic_INITIAL();
10558 break;
10559
10560 case L4_MABX_IN_SENSOR_RELAY_UNLATCH:
10561 L4_MABX_B.F_Sensor_relay_command_k = false;
10562
10563 /* During 'SENSOR_RELAY_UNLATCH': '<S212>:25' */
10564 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10565 (L4_MABX_DW.MABX_RELAY_OFF_DELAY_SECS_APV * 100.0)) {
10566 /* Transition: '<S212>:26' */
10567 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_MABX_RELAY_UNLATCH;
10568
10569 /* Entry 'MABX_RELAY_UNLATCH': '<S212>:27' */
10570 L4_MABX_B.F_MABX_relay_command_n = false;
10571 }
10572 break;
10573
10574 default:
10575 /* During 'WAIT': '<S212>:65' */
10576 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10577 (L4_MABX_DW.IGN_RELAY_OFF_DELAY_SECS_APV * 100.0)) {
10578 /* Transition: '<S212>:55' */
10579 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_IGN_RELAY_UNLATCH;
10580 L4_MABX_DW.temporalCounter_i1 = 0U;
10581
10582 /* Entry 'IGN_RELAY_UNLATCH': '<S212>:29' */
10583 L4_MABX_B.F_Ignition_relay_command_i = false;
10584 }
10585 break;
10586 }
10587 break;
10588
10589 default:
10590 /* During 'POWER_UP_ROUTINE': '<S212>:16' */
10591 zcEvent = ((!L4_MABX_B.F_Ignition_sw_on) &&
10592 L4_MABX_B.F_Ignition_sw_off_conditions_me);
10593 if (zcEvent) {
10594 /* Transition: '<S212>:31' */
10595 /* Exit Internal 'POWER_UP_ROUTINE': '<S212>:16' */
10596 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_NO_ACTIVE_CHILD;
10597 L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT =
10598 L4_MABX_IN_POWER_DOWN_ROUTINE;
10599
10600 /* Entry Internal 'POWER_DOWN_ROUTINE': '<S212>:30' */
10601 /* Transition: '<S212>:66' */
10602 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_WAIT;
10603 L4_MABX_DW.temporalCounter_i1 = 0U;
10604 } else {
10605 switch (L4_MABX_DW.is_POWER_UP_ROUTINE) {
10606 case L4_MABX_IN_IGN_RELAY_LATCH:
10607 L4_MABX_B.F_Ignition_relay_command_i = true;
10608
10609 /* During 'IGN_RELAY_LATCH': '<S212>:20' */
10610 break;
10611
10612 case L4_MABX_IN_INV_RELAY_LATCH:
10613 L4_MABX_B.F_Inverter_relay_command_p = true;
10614
10615 /* During 'INV_RELAY_LATCH': '<S212>:19' */
10616 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10617 (L4_MABX_DW.IGN_RELAY_ON_DELAY_SECS_APV * 100.0)) {
10618 /* Transition: '<S212>:21' */
10619 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_IGN_RELAY_LATCH;
10620
10621 /* Entry 'IGN_RELAY_LATCH': '<S212>:20' */
10622 L4_MABX_B.F_Ignition_relay_command_i = true;
10623 }
10624 break;
10625
10626 case L4_MABX_IN_MABX_RELAY_LATCH:
10627 L4_MABX_B.F_MABX_relay_command_n = true;
10628
10629 /* During 'MABX_RELAY_LATCH': '<S212>:10' */
10630 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10631 (L4_MABX_DW.SENSOR_RELAY_ON_DELAY_SECS_APV * 100.0)) {
10632 /* Transition: '<S212>:15' */
10633 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_SENSOR_RELAY_LATCH;
10634 L4_MABX_DW.temporalCounter_i1 = 0U;
10635
10636 /* Entry 'SENSOR_RELAY_LATCH': '<S212>:14' */
10637 L4_MABX_B.F_Sensor_relay_command_k = true;
10638 }
10639 break;
10640
10641 case L4_MABX_IN_SENSOR_RELAY_LATCH:
10642 L4_MABX_B.F_Sensor_relay_command_k = true;
10643
10644 /* During 'SENSOR_RELAY_LATCH': '<S212>:14' */
10645 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10646 (L4_MABX_DW.INVERTER_RELAY_ON_DELAY_SECS_AP * 100.0)) {
10647 /* Transition: '<S212>:18' */
10648 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_INV_RELAY_LATCH;
10649 L4_MABX_DW.temporalCounter_i1 = 0U;
10650
10651 /* Entry 'INV_RELAY_LATCH': '<S212>:19' */
10652 L4_MABX_B.F_Inverter_relay_command_p = true;
10653 }
10654 break;
10655
10656 default:
10657 /* During 'WAIT': '<S212>:63' */
10658 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10659 (L4_MABX_DW.MABX_RELAY_ON_DELAY_SECS_APV * 100.0)) {
10660 /* Transition: '<S212>:11' */
10661 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_MABX_RELAY_LATCH;
10662 L4_MABX_DW.temporalCounter_i1 = 0U;
10663
10664 /* Entry 'MABX_RELAY_LATCH': '<S212>:10' */
10665 L4_MABX_B.F_MABX_relay_command_n = true;
10666 }
10667 break;
10668 }
10669 }
10670 break;
10671 }
10672 }
10673
10674 /* Lookup_n-D: '<S79>/CurveBasedSpeedSetpoint' incorporates:
10675 * Constant: '<S80>/zero'
10676 */
10677 L4_MABX_B.CurveBasedSpeedSetpoint = look1_binlcapw(L4_MABX_P.zero_Value,
10678 L4_MABX_P.CurveBasedSpeedSetpoint_bp01Dat,
10679 L4_MABX_P.CurveBasedSpeedSetpoint_tableDa, 4U);
10680
10681 /* Lookup_n-D: '<S80>/1-D Lookup Table1' */
10682 L4_MABX_B.uDLookupTable1 = look1_binlxpw(SteerWheelAngle,
10683 L4_MABX_P.uDLookupTable1_bp01Data, L4_MABX_P.uDLookupTable1_tableData, 16U);
10684
10685 /* Product: '<S278>/Divide' incorporates:
10686 * Constant: '<S271>/Constant'
10687 * Constant: '<S271>/Constant1'
10688 */
10689 L4_MABX_B.Divide_nn = (real32_T)(L4_MABX_P.Constant1_Value_i /
10690 L4_MABX_P.Constant_Value_e);
10691
10692 /* DataTypeConversion: '<S80>/Data Type Conversion5' */
10693 PositionFinalLimited = floor(L4_MABX_B.SFunction1_o2_et);
10694 if (rtIsNaN(PositionFinalLimited) || rtIsInf(PositionFinalLimited)) {
10695 PositionFinalLimited = 0.0;
10696 } else {
10697 PositionFinalLimited = fmod(PositionFinalLimited, 256.0);
10698 }
10699
10700 L4_MABX_B.DataTypeConversion5_e3 = (uint8_T)(PositionFinalLimited < 0.0 ?
10701 (int32_T)(uint8_T)-(int8_T)(uint8_T)-PositionFinalLimited : (int32_T)
10702 (uint8_T)PositionFinalLimited);
10703
10704 /* End of DataTypeConversion: '<S80>/Data Type Conversion5' */
10705
10706 /* Chart: '<S276>/Chart' */
10707 /* Gateway: STEERCTRL_10ms/slew/Chart */
10708 /* During: STEERCTRL_10ms/slew/Chart */
10709 if (L4_MABX_DW.is_active_c12_SUB_L4_Task_10ms_ == 0U) {
10710 /* Entry: STEERCTRL_10ms/slew/Chart */
10711 L4_MABX_DW.is_active_c12_SUB_L4_Task_10ms_ = 1U;
10712
10713 /* Entry Internal: STEERCTRL_10ms/slew/Chart */
10714 /* Transition: '<S320>:4' */
10715 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_init_f;
10716
10717 /* Entry 'init': '<S320>:1' */
10718 L4_MABX_B.stateChange = 0U;
10719 } else {
10720 switch (L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE) {
10721 case L4_MABX_IN_OneLane:
10722 /* During 'OneLane': '<S320>:7' */
10723 /* Transition: '<S320>:20' */
10724 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_OneLane1;
10725
10726 /* Entry 'OneLane1': '<S320>:18' */
10727 L4_MABX_B.stateChange = 0U;
10728 break;
10729
10730 case L4_MABX_IN_OneLane1:
10731 L4_MABX_B.stateChange = 0U;
10732
10733 /* During 'OneLane1': '<S320>:18' */
10734 zcEvent = ((L4_MABX_B.DataTypeConversion5_e3 < 3) ||
10735 (L4_MABX_B.DataTypeConversion5_e3 > 18));
10736 if (zcEvent) {
10737 /* Transition: '<S320>:22' */
10738 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_init_f;
10739
10740 /* Entry 'init': '<S320>:1' */
10741 L4_MABX_B.stateChange = 0U;
10742 }
10743 break;
10744
10745 case L4_MABX_IN_TwoLanes:
10746 /* During 'TwoLanes': '<S320>:8' */
10747 /* Transition: '<S320>:21' */
10748 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_TwoLanes1;
10749
10750 /* Entry 'TwoLanes1': '<S320>:19' */
10751 L4_MABX_B.stateChange = 0U;
10752 break;
10753
10754 case L4_MABX_IN_TwoLanes1:
10755 L4_MABX_B.stateChange = 0U;
10756
10757 /* During 'TwoLanes1': '<S320>:19' */
10758 if (L4_MABX_B.DataTypeConversion5_e3 < 18) {
10759 /* Transition: '<S320>:23' */
10760 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_init_f;
10761
10762 /* Entry 'init': '<S320>:1' */
10763 L4_MABX_B.stateChange = 0U;
10764 }
10765 break;
10766
10767 case L4_MABX_IN_ZeroLanes:
10768 /* During 'ZeroLanes': '<S320>:5' */
10769 /* Transition: '<S320>:16' */
10770 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_ZeroLanes1;
10771
10772 /* Entry 'ZeroLanes1': '<S320>:15' */
10773 L4_MABX_B.stateChange = 0U;
10774 break;
10775
10776 case L4_MABX_IN_ZeroLanes1:
10777 L4_MABX_B.stateChange = 0U;
10778
10779 /* During 'ZeroLanes1': '<S320>:15' */
10780 if (L4_MABX_B.DataTypeConversion5_e3 > 3) {
10781 /* Transition: '<S320>:17' */
10782 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_init_f;
10783
10784 /* Entry 'init': '<S320>:1' */
10785 L4_MABX_B.stateChange = 0U;
10786 }
10787 break;
10788
10789 default:
10790 L4_MABX_B.stateChange = 0U;
10791
10792 /* During 'init': '<S320>:1' */
10793 if (L4_MABX_B.DataTypeConversion5_e3 <= 3) {
10794 /* Transition: '<S320>:6' */
10795 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_ZeroLanes;
10796
10797 /* Entry 'ZeroLanes': '<S320>:5' */
10798 L4_MABX_B.stateChange = 1U;
10799 } else if (L4_MABX_B.DataTypeConversion5_e3 > 18) {
10800 /* Transition: '<S320>:9' */
10801 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_TwoLanes;
10802
10803 /* Entry 'TwoLanes': '<S320>:8' */
10804 L4_MABX_B.stateChange = 1U;
10805 } else {
10806 if (L4_MABX_B.DataTypeConversion5_e3 > 3) {
10807 /* Transition: '<S320>:10' */
10808 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_OneLane;
10809
10810 /* Entry 'OneLane': '<S320>:7' */
10811 L4_MABX_B.stateChange = 1U;
10812 }
10813 }
10814 break;
10815 }
10816 }
10817
10818 /* End of Chart: '<S276>/Chart' */
10819
10820 /* DataTypeConversion: '<S276>/Data Type Conversion' */
10821 L4_MABX_B.DataTypeConversion_l1 = (L4_MABX_B.stateChange != 0);
10822
10823 /* UnitDelay: '<S314>/Unit_Delay1' */
10824 L4_MABX_B.Unit_Delay1_j = L4_MABX_DW.Unit_Delay1_DSTATE_db;
10825
10826 /* Logic: '<S314>/Logical Operator' incorporates:
10827 * Constant: '<S275>/zero'
10828 */
10829 L4_MABX_B.LogicalOperator_kh = (L4_MABX_P.zero_Value_g ||
10830 L4_MABX_B.Unit_Delay1_j);
10831
10832 /* MinMax: '<S314>/MinMax1' incorporates:
10833 * Constant: '<S275>/timeConstant'
10834 * Constant: '<S275>/timeConstant1'
10835 */
10836 DeltaTime = L4_MABX_P.timeConstant1_Value;
10837 PositionFinalLimited = L4_MABX_P.timeConstant_Value;
10838 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10839 PositionFinalLimited = DeltaTime;
10840 }
10841
10842 L4_MABX_B.MinMax1_pr = PositionFinalLimited;
10843
10844 /* End of MinMax: '<S314>/MinMax1' */
10845
10846 /* Saturate: '<S314>/Saturation' */
10847 DeltaTime = L4_MABX_B.MinMax1_pr;
10848 Time56 = L4_MABX_P.Saturation_LowerSat_p2;
10849 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_o1;
10850 if (DeltaTime > PositionFinalLimited) {
10851 L4_MABX_B.Saturation_ns = PositionFinalLimited;
10852 } else if (DeltaTime < Time56) {
10853 L4_MABX_B.Saturation_ns = Time56;
10854 } else {
10855 L4_MABX_B.Saturation_ns = DeltaTime;
10856 }
10857
10858 /* End of Saturate: '<S314>/Saturation' */
10859
10860 /* Product: '<S314>/Divide' incorporates:
10861 * Constant: '<S275>/timeConstant1'
10862 */
10863 L4_MABX_B.Divide_o = L4_MABX_P.timeConstant1_Value / L4_MABX_B.Saturation_ns;
10864
10865 /* Product: '<S314>/Product2' */
10866 L4_MABX_B.Product2_b = L4_MABX_B.SFunction1_o3_nn * L4_MABX_B.Divide_o;
10867
10868 /* Sum: '<S314>/Subtract1' incorporates:
10869 * Constant: '<S314>/Constant1'
10870 */
10871 L4_MABX_B.Subtract1_ei = L4_MABX_P.Constant1_Value_n - L4_MABX_B.Divide_o;
10872
10873 /* UnitDelay: '<S314>/Unit_Delay2' */
10874 L4_MABX_B.Unit_Delay2_k = L4_MABX_DW.Unit_Delay2_DSTATE_d;
10875
10876 /* Product: '<S314>/Product1' */
10877 L4_MABX_B.Product1_n = L4_MABX_B.Subtract1_ei * L4_MABX_B.Unit_Delay2_k;
10878
10879 /* Sum: '<S314>/Add1' */
10880 L4_MABX_B.Add1_k = L4_MABX_B.Product2_b + L4_MABX_B.Product1_n;
10881
10882 /* Outputs for Atomic SubSystem: '<S314>/If_Then_Else' */
10883 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_kh, L4_MABX_B.SFunction1_o3_nn,
10884 L4_MABX_B.Add1_k, &L4_MABX_B.If_Then_Else_b3);
10885
10886 /* End of Outputs for SubSystem: '<S314>/If_Then_Else' */
10887
10888 /* Abs: '<S275>/Abs' */
10889 L4_MABX_B.Abs_i = fabs(L4_MABX_B.SFunction1_o3_nn);
10890
10891 /* Sum: '<S275>/Add' */
10892 L4_MABX_B.Add_p = L4_MABX_B.Abs_i - L4_MABX_B.If_Then_Else_b3.Switch;
10893
10894 /* RelationalOperator: '<S275>/highRateOfChange' incorporates:
10895 * Constant: '<S275>/rateOfChangeThreshold'
10896 */
10897 L4_MABX_B.highRateOfChange = (L4_MABX_B.Add_p >
10898 L4_MABX_P.rateOfChangeThreshold_Value);
10899
10900 /* RelationalOperator: '<S275>/closeToEdge' incorporates:
10901 * Constant: '<S275>/closeToLaneEdgeThreshold'
10902 */
10903 L4_MABX_B.closeToEdge = (L4_MABX_B.Abs_i >
10904 L4_MABX_P.closeToLaneEdgeThreshold_Value);
10905
10906 /* Logic: '<S275>/JumpNearEdge' */
10907 L4_MABX_B.JumpNearEdge = (L4_MABX_B.highRateOfChange && L4_MABX_B.closeToEdge);
10908
10909 /* UnitDelay: '<S313>/Delay Input1' */
10910 L4_MABX_B.Uk1_k2 = L4_MABX_DW.DelayInput1_DSTATE_f0;
10911
10912 /* RelationalOperator: '<S313>/FixPt Relational Operator' */
10913 L4_MABX_B.FixPtRelationalOperator_i = (L4_MABX_B.JumpNearEdge !=
10914 L4_MABX_B.Uk1_k2);
10915
10916 /* DataTypeConversion: '<S275>/Data Type Conversion' */
10917 L4_MABX_B.DataTypeConversion_dz = L4_MABX_B.FixPtRelationalOperator_i;
10918
10919 /* UnitDelay: '<S315>/Unit_Delay1' */
10920 L4_MABX_B.Unit_Delay1_f = L4_MABX_DW.Unit_Delay1_DSTATE_a;
10921
10922 /* Logic: '<S315>/Logical Operator' */
10923 L4_MABX_B.LogicalOperator_a3 = (L4_MABX_B.DataTypeConversion_dz ||
10924 L4_MABX_B.Unit_Delay1_f);
10925
10926 /* Switch: '<S275>/Switch' incorporates:
10927 * Constant: '<S275>/correction'
10928 * Constant: '<S275>/zero1'
10929 */
10930 if (L4_MABX_B.JumpNearEdge) {
10931 L4_MABX_B.Switch_g = L4_MABX_P.correction_Value;
10932 } else {
10933 L4_MABX_B.Switch_g = L4_MABX_P.zero1_Value;
10934 }
10935
10936 /* End of Switch: '<S275>/Switch' */
10937
10938 /* MinMax: '<S315>/MinMax1' incorporates:
10939 * Constant: '<S275>/timeConstant2'
10940 * Constant: '<S275>/timeConstant3'
10941 */
10942 DeltaTime = L4_MABX_P.timeConstant3_Value;
10943 PositionFinalLimited = L4_MABX_P.timeConstant2_Value;
10944 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10945 PositionFinalLimited = DeltaTime;
10946 }
10947
10948 L4_MABX_B.MinMax1_a = PositionFinalLimited;
10949
10950 /* End of MinMax: '<S315>/MinMax1' */
10951
10952 /* Saturate: '<S315>/Saturation' */
10953 DeltaTime = L4_MABX_B.MinMax1_a;
10954 Time56 = L4_MABX_P.Saturation_LowerSat_ph;
10955 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_d;
10956 if (DeltaTime > PositionFinalLimited) {
10957 L4_MABX_B.Saturation_e = PositionFinalLimited;
10958 } else if (DeltaTime < Time56) {
10959 L4_MABX_B.Saturation_e = Time56;
10960 } else {
10961 L4_MABX_B.Saturation_e = DeltaTime;
10962 }
10963
10964 /* End of Saturate: '<S315>/Saturation' */
10965
10966 /* Product: '<S315>/Divide' incorporates:
10967 * Constant: '<S275>/timeConstant3'
10968 */
10969 L4_MABX_B.Divide_d = L4_MABX_P.timeConstant3_Value / L4_MABX_B.Saturation_e;
10970
10971 /* Product: '<S315>/Product2' */
10972 L4_MABX_B.Product2_f = L4_MABX_B.Switch_g * L4_MABX_B.Divide_d;
10973
10974 /* Sum: '<S315>/Subtract1' incorporates:
10975 * Constant: '<S315>/Constant1'
10976 */
10977 L4_MABX_B.Subtract1_b = L4_MABX_P.Constant1_Value_j - L4_MABX_B.Divide_d;
10978
10979 /* UnitDelay: '<S315>/Unit_Delay2' */
10980 L4_MABX_B.Unit_Delay2_l = L4_MABX_DW.Unit_Delay2_DSTATE_i;
10981
10982 /* Product: '<S315>/Product1' */
10983 L4_MABX_B.Product1_c = L4_MABX_B.Subtract1_b * L4_MABX_B.Unit_Delay2_l;
10984
10985 /* Sum: '<S315>/Add1' */
10986 L4_MABX_B.Add1_p = L4_MABX_B.Product2_f + L4_MABX_B.Product1_c;
10987
10988 /* Outputs for Atomic SubSystem: '<S315>/If_Then_Else' */
10989
10990 /* Constant: '<S275>/zero2' */
10991 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_a3, L4_MABX_P.zero2_Value,
10992 L4_MABX_B.Add1_p, &L4_MABX_B.If_Then_Else_mk);
10993
10994 /* End of Outputs for SubSystem: '<S315>/If_Then_Else' */
10995
10996 /* Signum: '<S275>/Sign' */
10997 PositionFinalLimited = L4_MABX_B.SFunction1_o3_nn;
10998 if (PositionFinalLimited < 0.0) {
10999 L4_MABX_B.Sign = -1.0;
11000 } else if (PositionFinalLimited > 0.0) {
11001 L4_MABX_B.Sign = 1.0;
11002 } else if (PositionFinalLimited == 0.0) {
11003 L4_MABX_B.Sign = 0.0;
11004 } else {
11005 L4_MABX_B.Sign = (rtNaN);
11006 }
11007
11008 /* End of Signum: '<S275>/Sign' */
11009
11010 /* Product: '<S275>/Product' */
11011 L4_MABX_B.Product_cf = L4_MABX_B.If_Then_Else_mk.Switch * L4_MABX_B.Sign;
11012
11013 /* UnitDelay: '<S316>/Unit_Delay1' */
11014 L4_MABX_B.Unit_Delay1_de = L4_MABX_DW.Unit_Delay1_DSTATE_p;
11015
11016 /* Logic: '<S316>/Logical Operator' incorporates:
11017 * Constant: '<S275>/zero3'
11018 */
11019 L4_MABX_B.LogicalOperator_nz = (L4_MABX_P.zero3_Value ||
11020 L4_MABX_B.Unit_Delay1_de);
11021
11022 /* MinMax: '<S316>/MinMax1' incorporates:
11023 * Constant: '<S275>/timeConstant4'
11024 * Constant: '<S275>/timeConstant5'
11025 */
11026 DeltaTime = L4_MABX_P.timeConstant5_Value;
11027 PositionFinalLimited = L4_MABX_P.timeConstant4_Value;
11028 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
11029 PositionFinalLimited = DeltaTime;
11030 }
11031
11032 L4_MABX_B.MinMax1_e = PositionFinalLimited;
11033
11034 /* End of MinMax: '<S316>/MinMax1' */
11035
11036 /* Saturate: '<S316>/Saturation' */
11037 DeltaTime = L4_MABX_B.MinMax1_e;
11038 Time56 = L4_MABX_P.Saturation_LowerSat_k;
11039 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_ok;
11040 if (DeltaTime > PositionFinalLimited) {
11041 L4_MABX_B.Saturation_o = PositionFinalLimited;
11042 } else if (DeltaTime < Time56) {
11043 L4_MABX_B.Saturation_o = Time56;
11044 } else {
11045 L4_MABX_B.Saturation_o = DeltaTime;
11046 }
11047
11048 /* End of Saturate: '<S316>/Saturation' */
11049
11050 /* Product: '<S316>/Divide' incorporates:
11051 * Constant: '<S275>/timeConstant5'
11052 */
11053 L4_MABX_B.Divide_jr = L4_MABX_P.timeConstant5_Value / L4_MABX_B.Saturation_o;
11054
11055 /* Product: '<S316>/Product2' */
11056 L4_MABX_B.Product2_nk = L4_MABX_B.SFunction1_o3_nn * L4_MABX_B.Divide_jr;
11057
11058 /* Sum: '<S316>/Subtract1' incorporates:
11059 * Constant: '<S316>/Constant1'
11060 */
11061 L4_MABX_B.Subtract1_eh = L4_MABX_P.Constant1_Value_oi - L4_MABX_B.Divide_jr;
11062
11063 /* UnitDelay: '<S316>/Unit_Delay2' */
11064 L4_MABX_B.Unit_Delay2_c = L4_MABX_DW.Unit_Delay2_DSTATE_p;
11065
11066 /* Product: '<S316>/Product1' */
11067 L4_MABX_B.Product1_cc = L4_MABX_B.Subtract1_eh * L4_MABX_B.Unit_Delay2_c;
11068
11069 /* Sum: '<S316>/Add1' */
11070 L4_MABX_B.Add1_f = L4_MABX_B.Product2_nk + L4_MABX_B.Product1_cc;
11071
11072 /* Outputs for Atomic SubSystem: '<S316>/If_Then_Else' */
11073 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_nz, L4_MABX_B.SFunction1_o3_nn,
11074 L4_MABX_B.Add1_f, &L4_MABX_B.If_Then_Else_lh);
11075
11076 /* End of Outputs for SubSystem: '<S316>/If_Then_Else' */
11077
11078 /* Switch: '<S275>/Switch1' */
11079 if (L4_MABX_B.JumpNearEdge) {
11080 L4_MABX_B.Switch1_f = L4_MABX_B.If_Then_Else_lh.Switch;
11081 } else {
11082 L4_MABX_B.Switch1_f = L4_MABX_B.SFunction1_o3_nn;
11083 }
11084
11085 /* End of Switch: '<S275>/Switch1' */
11086
11087 /* Sum: '<S275>/corrected Error' */
11088 L4_MABX_B.correctedError = L4_MABX_B.Product_cf + L4_MABX_B.Switch1_f;
11089
11090 /* RelationalOperator: '<S276>/Relational Operator' incorporates:
11091 * Constant: '<S276>/Constant'
11092 */
11093 L4_MABX_B.RelationalOperator_l5 = (L4_MABX_B.DataTypeConversion5_e3 >=
11094 L4_MABX_P.Constant_Value_mgt);
11095
11096 /* Switch: '<S276>/Switch' incorporates:
11097 * Constant: '<S276>/Constant1'
11098 */
11099 if (L4_MABX_B.RelationalOperator_l5) {
11100 L4_MABX_B.Switch_h = L4_MABX_B.correctedError;
11101 } else {
11102 L4_MABX_B.Switch_h = L4_MABX_P.Constant1_Value_l;
11103 }
11104
11105 /* End of Switch: '<S276>/Switch' */
11106
11107 /* Outputs for Enabled SubSystem: '<S276>/Slew_at_event' incorporates:
11108 * EnablePort: '<S321>/Enable'
11109 */
11110 /* Constant: '<S276>/enable' */
11111 if (L4_MABX_P.enable_Value > 0.0) {
11112 if (!L4_MABX_DW.Slew_at_event_MODE_d) {
11113 /* InitializeConditions for UnitDelay: '<S323>/Unit_Delay' */
11114 L4_MABX_DW.Unit_Delay_DSTATE_bd = L4_MABX_P.Unit_Delay_InitialCondition_ls;
11115
11116 /* InitializeConditions for UnitDelay: '<S324>/Unit_Delay' */
11117 L4_MABX_DW.Unit_Delay_DSTATE_jt = L4_MABX_P.Unit_Delay_InitialCondition_i0;
11118
11119 /* InitializeConditions for UnitDelay: '<S327>/FixPt Unit Delay2' */
11120 L4_MABX_DW.FixPtUnitDelay2_DSTATE_j =
11121 L4_MABX_P.FixPtUnitDelay2_InitialCondit_c;
11122
11123 /* InitializeConditions for UnitDelay: '<S327>/FixPt Unit Delay1' */
11124 L4_MABX_DW.FixPtUnitDelay1_DSTATE_o =
11125 L4_MABX_P.FixPtUnitDelay1_InitialCondit_f;
11126
11127 /* InitializeConditions for UnitDelay: '<S322>/Unit_Delay' */
11128 L4_MABX_DW.Unit_Delay_DSTATE_ll = L4_MABX_P.Unit_Delay_InitialCondition_ld;
11129 L4_MABX_DW.Slew_at_event_MODE_d = true;
11130 }
11131
11132 /* UnitDelay: '<S323>/Unit_Delay' */
11133 L4_MABX_B.Unit_Delay_o3 = L4_MABX_DW.Unit_Delay_DSTATE_bd;
11134
11135 /* Logic: '<S323>/Logical Operator1' */
11136 L4_MABX_B.LogicalOperator1_gw = !L4_MABX_B.Unit_Delay_o3;
11137
11138 /* Logic: '<S323>/Logical Operator' */
11139 L4_MABX_B.LogicalOperator_d2 = (L4_MABX_B.DataTypeConversion_l1 &&
11140 L4_MABX_B.LogicalOperator1_gw);
11141
11142 /* UnitDelay: '<S324>/Unit_Delay' */
11143 L4_MABX_B.Unit_Delay_hj = L4_MABX_DW.Unit_Delay_DSTATE_jt;
11144
11145 /* Logic: '<S324>/Logical Operator1' */
11146 L4_MABX_B.LogicalOperator1_hp = (L4_MABX_B.LogicalOperator_d2 ||
11147 L4_MABX_B.Unit_Delay_hj);
11148
11149 /* UnitDelay: '<S327>/FixPt Unit Delay2' */
11150 L4_MABX_B.FixPtUnitDelay2_h5 = L4_MABX_DW.FixPtUnitDelay2_DSTATE_j;
11151
11152 /* UnitDelay: '<S327>/FixPt Unit Delay1' */
11153 L4_MABX_B.Xold_gn = L4_MABX_DW.FixPtUnitDelay1_DSTATE_o;
11154
11155 /* Switch: '<S327>/Init' */
11156 if (L4_MABX_B.FixPtUnitDelay2_h5 != 0) {
11157 L4_MABX_B.Init_j = L4_MABX_B.Switch_h;
11158 } else {
11159 L4_MABX_B.Init_j = L4_MABX_B.Xold_gn;
11160 }
11161
11162 /* End of Switch: '<S327>/Init' */
11163
11164 /* Abs: '<S324>/Abs' incorporates:
11165 * Constant: '<S276>/Constant3'
11166 */
11167 L4_MABX_B.Abs_a = fabs(L4_MABX_P.Constant3_Value_j);
11168
11169 /* Product: '<S324>/Product1' incorporates:
11170 * Constant: '<S276>/Constant2'
11171 */
11172 L4_MABX_B.Product1_i3 = L4_MABX_B.Abs_a * L4_MABX_P.Constant2_Value_p;
11173
11174 /* Sum: '<S324>/Add1' */
11175 L4_MABX_B.Add1_b0 = L4_MABX_B.Init_j + L4_MABX_B.Product1_i3;
11176
11177 /* MinMax: '<S324>/MinMax2' */
11178 DeltaTime = L4_MABX_B.Switch_h;
11179 PositionFinalLimited = L4_MABX_B.Add1_b0;
11180 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
11181 PositionFinalLimited = DeltaTime;
11182 }
11183
11184 L4_MABX_B.MinMax2_l = PositionFinalLimited;
11185
11186 /* End of MinMax: '<S324>/MinMax2' */
11187
11188 /* Abs: '<S324>/Abs1' incorporates:
11189 * Constant: '<S276>/Constant4'
11190 */
11191 L4_MABX_B.Abs1_e = fabs(L4_MABX_P.Constant4_Value_bq);
11192
11193 /* Product: '<S324>/Product2' incorporates:
11194 * Constant: '<S276>/Constant2'
11195 */
11196 L4_MABX_B.Product2_k = L4_MABX_P.Constant2_Value_p * L4_MABX_B.Abs1_e;
11197
11198 /* Sum: '<S324>/Subtract1' */
11199 L4_MABX_B.Subtract1_g = L4_MABX_B.Init_j - L4_MABX_B.Product2_k;
11200
11201 /* MinMax: '<S324>/MinMax1' */
11202 DeltaTime = L4_MABX_B.MinMax2_l;
11203 PositionFinalLimited = L4_MABX_B.Subtract1_g;
11204 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
11205 PositionFinalLimited = DeltaTime;
11206 }
11207
11208 L4_MABX_B.MinMax1_k = PositionFinalLimited;
11209
11210 /* End of MinMax: '<S324>/MinMax1' */
11211
11212 /* Outputs for Atomic SubSystem: '<S324>/If_Then_Else' */
11213 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_hp, L4_MABX_B.Switch_h,
11214 L4_MABX_B.MinMax1_k, &L4_MABX_B.If_Then_Else_n3);
11215
11216 /* End of Outputs for SubSystem: '<S324>/If_Then_Else' */
11217
11218 /* Sum: '<S321>/Subtract' */
11219 L4_MABX_B.Subtract_ij = L4_MABX_B.Switch_h -
11220 L4_MABX_B.If_Then_Else_n3.Switch;
11221
11222 /* Abs: '<S321>/Abs' */
11223 L4_MABX_B.Abs_eu = fabs(L4_MABX_B.Subtract_ij);
11224
11225 /* RelationalOperator: '<S321>/Relational Operator1' incorporates:
11226 * Constant: '<S321>/Constant1'
11227 */
11228 L4_MABX_B.RelationalOperator1_et = (L4_MABX_B.Abs_eu <=
11229 L4_MABX_P.Constant1_Value_ah);
11230
11231 /* Logic: '<S322>/Logical Operator3' */
11232 L4_MABX_B.LogicalOperator3_a = !L4_MABX_B.RelationalOperator1_et;
11233
11234 /* UnitDelay: '<S322>/Unit_Delay' */
11235 L4_MABX_B.Unit_Delay_i = L4_MABX_DW.Unit_Delay_DSTATE_ll;
11236
11237 /* Logic: '<S322>/Logical Operator1' */
11238 L4_MABX_B.LogicalOperator1_joh = (L4_MABX_B.DataTypeConversion_l1 ||
11239 L4_MABX_B.Unit_Delay_i);
11240
11241 /* Logic: '<S322>/Logical Operator' */
11242 L4_MABX_B.LogicalOperator_dm = (L4_MABX_B.LogicalOperator3_a &&
11243 L4_MABX_B.LogicalOperator1_joh);
11244
11245 /* Logic: '<S322>/Logical Operator2' */
11246 L4_MABX_B.LogicalOperator2_j = !L4_MABX_B.LogicalOperator_dm;
11247
11248 /* RelationalOperator: '<S325>/min_relop' incorporates:
11249 * Constant: '<S276>/Constant3'
11250 * Constant: '<S325>/min_val'
11251 */
11252 L4_MABX_B.min_relop_d = (L4_MABX_P.CheckStaticLowerBound_min_n <=
11253 L4_MABX_P.Constant3_Value_j);
11254
11255 /* Assertion: '<S325>/Assertion' */
11256 utAssert(L4_MABX_B.min_relop_d);
11257 } else {
11258 if (L4_MABX_DW.Slew_at_event_MODE_d) {
11259 /* Disable for Outport: '<S321>/F_Out_slewing' */
11260 L4_MABX_B.LogicalOperator_dm = L4_MABX_P.F_Out_slewing_Y0;
11261
11262 /* Disable for Outport: '<S321>/Out' */
11263 L4_MABX_B.If_Then_Else_n3.Switch = L4_MABX_P.Out_Y0;
11264 L4_MABX_DW.Slew_at_event_MODE_d = false;
11265 }
11266 }
11267
11268 /* End of Constant: '<S276>/enable' */
11269 /* End of Outputs for SubSystem: '<S276>/Slew_at_event' */
11270
11271 /* Switch: '<S276>/Switch1' incorporates:
11272 * Constant: '<S276>/enableSlew'
11273 */
11274 if (L4_MABX_P.enableSlew_Value != 0.0) {
11275 L4_MABX_B.Switch1_j = L4_MABX_B.If_Then_Else_n3.Switch;
11276 } else {
11277 L4_MABX_B.Switch1_j = L4_MABX_B.Switch_h;
11278 }
11279
11280 /* End of Switch: '<S276>/Switch1' */
11281
11282 /* Gain: '<S80>/sign' */
11283 L4_MABX_B.SteerCtrlErrRaw = L4_MABX_P.sign_Gain * L4_MABX_B.Switch1_j;
11284
11285 /* DataTypeConversion: '<S80>/Data Type Conversion1' */
11286 L4_MABX_B.DataTypeConversion1_e = L4_MABX_B.SteerCtrlErrRaw;
11287
11288 /* UnitDelay: '<S278>/Unit Delay' */
11289 L4_MABX_B.UnitDelay_fm = L4_MABX_DW.UnitDelay_DSTATE_d;
11290
11291 /* Switch: '<S282>/Switch1' incorporates:
11292 * Constant: '<S278>/E'
11293 * Constant: '<S278>/R'
11294 * Switch: '<S280>/Switch1'
11295 */
11296 if (L4_MABX_P.R_Value) {
11297 /* DataTypeConversion: '<S278>/Data Type Conversion1' incorporates:
11298 * Constant: '<S278>/IV'
11299 */
11300 L4_MABX_B.DataTypeConversion1_b1 = (real32_T)L4_MABX_P.IV_Value;
11301 L4_MABX_B.Switch1_fi = L4_MABX_B.DataTypeConversion1_b1;
11302 } else {
11303 if (L4_MABX_P.E_Value_j) {
11304 /* DataTypeConversion: '<S278>/Data Type Conversion' incorporates:
11305 * Switch: '<S280>/Switch1'
11306 */
11307 L4_MABX_B.DataTypeConversion_ps = (real32_T)
11308 L4_MABX_B.DataTypeConversion1_e;
11309
11310 /* Sum: '<S278>/Add3' incorporates:
11311 * Switch: '<S280>/Switch1'
11312 */
11313 L4_MABX_B.Add3_j = L4_MABX_B.DataTypeConversion_ps -
11314 L4_MABX_B.UnitDelay_fm;
11315
11316 /* Product: '<S278>/Product1' incorporates:
11317 * Switch: '<S280>/Switch1'
11318 */
11319 L4_MABX_B.Product1_n2 = L4_MABX_B.Divide_nn * L4_MABX_B.Add3_j;
11320
11321 /* Sum: '<S278>/Add' incorporates:
11322 * Switch: '<S280>/Switch1'
11323 */
11324 L4_MABX_B.Add_f = L4_MABX_B.Product1_n2 + L4_MABX_B.UnitDelay_fm;
11325
11326 /* Switch: '<S280>/Switch1' */
11327 L4_MABX_B.Switch1_cw = L4_MABX_B.Add_f;
11328 } else {
11329 /* Switch: '<S280>/Switch1' */
11330 L4_MABX_B.Switch1_cw = L4_MABX_B.UnitDelay_fm;
11331 }
11332
11333 L4_MABX_B.Switch1_fi = L4_MABX_B.Switch1_cw;
11334 }
11335
11336 /* End of Switch: '<S282>/Switch1' */
11337
11338 /* DataTypeConversion: '<S279>/Conversion' */
11339 L4_MABX_B.Conversion = L4_MABX_B.Switch1_fi;
11340
11341 /* Abs: '<S80>/Abs' */
11342 L4_MABX_B.Abs_d = fabs(L4_MABX_B.Conversion);
11343
11344 /* Lookup_n-D: '<S80>/SteeringControlPGainErrorBased' */
11345 L4_MABX_B.SteeringControlPGainErrorBased = look1_binlxpw(L4_MABX_B.Abs_d,
11346 L4_MABX_P.SteeringControlPGainErrorBase_n,
11347 L4_MABX_P.SteeringControlPGainErrorBased_, 9U);
11348
11349 /* DataTypeConversion: '<S80>/Data Type Conversion' */
11350 L4_MABX_B.DataTypeConversion_k = L4_MABX_B.SFunction1_o1_c4;
11351
11352 /* Lookup_n-D: '<S80>/SteeringControlPGainSpeedFactor' */
11353 L4_MABX_B.SteeringControlPGainSpeedFactor = look1_binlxpw
11354 (L4_MABX_B.DataTypeConversion_k, L4_MABX_P.SteeringControlPGainSpeedFact_i,
11355 L4_MABX_P.SteeringControlPGainSpeedFactor, 8U);
11356
11357 /* Product: '<S80>/Product1' */
11358 L4_MABX_B.SteerCtrlPgain = L4_MABX_B.SteeringControlPGainErrorBased *
11359 L4_MABX_B.SteeringControlPGainSpeedFactor;
11360
11361 /* Gain: '<S80>/Gain' */
11362 L4_MABX_B.Gain_cd = L4_MABX_P.Gain_Gain_m * L4_MABX_B.SteerCtrlPgain;
11363
11364 /* Product: '<S289>/Product' */
11365 L4_MABX_B.Product_d = L4_MABX_B.Conversion * L4_MABX_B.Gain_cd;
11366
11367 /* Product: '<S289>/Divide' incorporates:
11368 * Constant: '<S273>/Constant21'
11369 * Constant: '<S273>/SteeringControlIntGain'
11370 */
11371 L4_MABX_B.Divide_ag = L4_MABX_P.Constant21_Value /
11372 L4_MABX_P.SteeringControlIntGain_Value;
11373
11374 /* Product: '<S289>/Product1' */
11375 L4_MABX_B.Product1_hr = L4_MABX_B.Product_d * L4_MABX_B.Divide_ag;
11376
11377 /* UnitDelay: '<S288>/Unit Delay' */
11378 L4_MABX_B.UnitDelay_m = L4_MABX_DW.UnitDelay_DSTATE_m;
11379
11380 /* RelationalOperator: '<S288>/Relational Operator' incorporates:
11381 * Constant: '<S273>/Constant19'
11382 */
11383 L4_MABX_B.RelationalOperator_d = (L4_MABX_B.UnitDelay_m >=
11384 L4_MABX_P.Constant19_Value);
11385
11386 /* Switch: '<S288>/Switch' incorporates:
11387 * Constant: '<S288>/Constant3'
11388 */
11389 if (L4_MABX_B.RelationalOperator_d) {
11390 L4_MABX_B.Switch_o = L4_MABX_P.Constant3_Value_pw;
11391 } else {
11392 /* RelationalOperator: '<S288>/Relational Operator1' incorporates:
11393 * Constant: '<S273>/Constant20'
11394 */
11395 L4_MABX_B.RelationalOperator1_m = (L4_MABX_B.UnitDelay_m <=
11396 L4_MABX_P.Constant20_Value);
11397
11398 /* Switch: '<S288>/Switch1' incorporates:
11399 * Constant: '<S288>/Constant'
11400 * Constant: '<S288>/Constant2'
11401 */
11402 if (L4_MABX_B.RelationalOperator1_m) {
11403 L4_MABX_B.Switch1_m = L4_MABX_P.Constant2_Value_hu;
11404 } else {
11405 L4_MABX_B.Switch1_m = L4_MABX_P.Constant_Value_i;
11406 }
11407
11408 /* End of Switch: '<S288>/Switch1' */
11409 L4_MABX_B.Switch_o = L4_MABX_B.Switch1_m;
11410 }
11411
11412 /* End of Switch: '<S288>/Switch' */
11413
11414 /* RelationalOperator: '<S291>/Relational Operator5' incorporates:
11415 * Constant: '<S291>/Constant5'
11416 */
11417 L4_MABX_B.RelationalOperator5_f = (L4_MABX_B.Switch_o !=
11418 L4_MABX_P.Constant5_Value_o);
11419
11420 /* Signum: '<S291>/Sign1' */
11421 PositionFinalLimited = L4_MABX_B.Product1_hr;
11422 if (PositionFinalLimited < 0.0) {
11423 L4_MABX_B.Sign1 = -1.0;
11424 } else if (PositionFinalLimited > 0.0) {
11425 L4_MABX_B.Sign1 = 1.0;
11426 } else if (PositionFinalLimited == 0.0) {
11427 L4_MABX_B.Sign1 = 0.0;
11428 } else {
11429 L4_MABX_B.Sign1 = (rtNaN);
11430 }
11431
11432 /* End of Signum: '<S291>/Sign1' */
11433
11434 /* RelationalOperator: '<S291>/Relational Operator4' incorporates:
11435 * Constant: '<S291>/Constant4'
11436 */
11437 L4_MABX_B.RelationalOperator4_la = (L4_MABX_P.Constant4_Value_j ==
11438 L4_MABX_B.Sign1);
11439
11440 /* RelationalOperator: '<S291>/Relational Operator2' incorporates:
11441 * Constant: '<S291>/Constant2'
11442 */
11443 L4_MABX_B.RelationalOperator2_o = (L4_MABX_B.Switch_o !=
11444 L4_MABX_P.Constant2_Value_g);
11445
11446 /* Logic: '<S291>/Logical Operator1' */
11447 L4_MABX_B.LogicalOperator1_ji = (L4_MABX_B.RelationalOperator4_la &&
11448 L4_MABX_B.RelationalOperator2_o);
11449
11450 /* RelationalOperator: '<S291>/Relational Operator1' incorporates:
11451 * Constant: '<S291>/Constant1'
11452 */
11453 L4_MABX_B.RelationalOperator1_ie = (L4_MABX_B.Switch_o !=
11454 L4_MABX_P.Constant1_Value_ly);
11455
11456 /* RelationalOperator: '<S291>/Relational Operator3' incorporates:
11457 * Constant: '<S291>/Constant3'
11458 */
11459 L4_MABX_B.RelationalOperator3_p = (L4_MABX_P.Constant3_Value_g ==
11460 L4_MABX_B.Sign1);
11461
11462 /* Logic: '<S291>/Logical Operator2' */
11463 L4_MABX_B.LogicalOperator2_o = (L4_MABX_B.RelationalOperator1_ie &&
11464 L4_MABX_B.RelationalOperator3_p);
11465
11466 /* Logic: '<S291>/Logical Operator' */
11467 L4_MABX_B.LogicalOperator_b = (L4_MABX_B.LogicalOperator1_ji ||
11468 L4_MABX_B.LogicalOperator2_o);
11469
11470 /* Logic: '<S291>/Logical Operator3' */
11471 L4_MABX_B.LogicalOperator3_oi = (L4_MABX_B.RelationalOperator5_f &&
11472 L4_MABX_B.LogicalOperator_b);
11473
11474 /* Switch: '<S291>/Switch1' incorporates:
11475 * Constant: '<S291>/Constant'
11476 */
11477 if (L4_MABX_B.LogicalOperator3_oi) {
11478 L4_MABX_B.Switch1_jw = L4_MABX_B.Product1_hr;
11479 } else {
11480 L4_MABX_B.Switch1_jw = L4_MABX_P.Constant_Value_o;
11481 }
11482
11483 /* End of Switch: '<S291>/Switch1' */
11484
11485 /* UnitDelay: '<S289>/Unit Delay' */
11486 L4_MABX_B.UnitDelay_o = L4_MABX_DW.UnitDelay_DSTATE_m0;
11487
11488 /* Sum: '<S289>/Add' */
11489 L4_MABX_B.Add_px = L4_MABX_B.Switch1_jw + L4_MABX_B.UnitDelay_o;
11490
11491 /* Product: '<S289>/Divide1' incorporates:
11492 * Constant: '<S273>/Constant21'
11493 * Constant: '<S273>/SteeringControlDGain'
11494 */
11495 L4_MABX_B.Divide1_b = L4_MABX_P.SteeringControlDGain_Value *
11496 L4_MABX_B.Product_d / L4_MABX_P.Constant21_Value;
11497
11498 /* UnitDelay: '<S289>/Unit Delay1' */
11499 L4_MABX_B.UnitDelay1_e = L4_MABX_DW.UnitDelay1_DSTATE_k;
11500
11501 /* Sum: '<S289>/Add3' */
11502 L4_MABX_B.Add3 = L4_MABX_B.Divide1_b - L4_MABX_B.UnitDelay1_e;
11503
11504 /* Sum: '<S289>/Add1' */
11505 L4_MABX_B.Add1_m = (L4_MABX_B.Product_d + L4_MABX_B.Add_px) + L4_MABX_B.Add3;
11506
11507 /* RelationalOperator: '<S290>/LowerRelop1' incorporates:
11508 * Constant: '<S273>/Constant19'
11509 */
11510 L4_MABX_B.LowerRelop1 = (L4_MABX_B.Add1_m > L4_MABX_P.Constant19_Value);
11511
11512 /* RelationalOperator: '<S290>/UpperRelop' incorporates:
11513 * Constant: '<S273>/Constant20'
11514 */
11515 L4_MABX_B.UpperRelop = (L4_MABX_B.Add1_m < L4_MABX_P.Constant20_Value);
11516
11517 /* Switch: '<S290>/Switch' incorporates:
11518 * Constant: '<S273>/Constant20'
11519 */
11520 if (L4_MABX_B.UpperRelop) {
11521 L4_MABX_B.Switch_p = L4_MABX_P.Constant20_Value;
11522 } else {
11523 L4_MABX_B.Switch_p = L4_MABX_B.Add1_m;
11524 }
11525
11526 /* End of Switch: '<S290>/Switch' */
11527
11528 /* Switch: '<S290>/Switch2' incorporates:
11529 * Constant: '<S273>/Constant19'
11530 */
11531 if (L4_MABX_B.LowerRelop1) {
11532 L4_MABX_B.Switch2_i = L4_MABX_P.Constant19_Value;
11533 } else {
11534 L4_MABX_B.Switch2_i = L4_MABX_B.Switch_p;
11535 }
11536
11537 /* End of Switch: '<S290>/Switch2' */
11538
11539 /* RateTransition: '<S80>/TmpRTBAtrad2deg1Inport1' */
11540 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
11541 L4_MABX_B.previewSteeringAngle_b =
11542 L4_MABX_DW.TmpRTBAtrad2deg1Inport1_Buffer0;
11543 }
11544
11545 /* Gain: '<S80>/rad2deg1' */
11546 L4_MABX_B.rad2deg1 = L4_MABX_P.rad2deg1_Gain *
11547 L4_MABX_B.previewSteeringAngle_b;
11548
11549 /* Sum: '<S80>/Add2' incorporates:
11550 * Constant: '<S80>/steeringOffset'
11551 */
11552 L4_MABX_B.Add2 = (L4_MABX_B.rad2deg1 + L4_MABX_B.Switch2_i) +
11553 L4_MABX_P.steeringOffset_Value;
11554
11555 /* Lookup_n-D: '<S277>/1-D Lookup Table' */
11556 L4_MABX_B.uDLookupTable_a = look1_binlxpw(L4_MABX_B.DataTypeConversion_k,
11557 L4_MABX_P.uDLookupTable_bp01Data_k, L4_MABX_P.uDLookupTable_tableData_b, 8U);
11558
11559 /* Product: '<S277>/AdjustedStanleyGain' incorporates:
11560 * Constant: '<S277>/stanleySteeringControlGain'
11561 */
11562 L4_MABX_B.AdjustedStanleyGain = L4_MABX_B.uDLookupTable_a *
11563 L4_MABX_P.stanleySteeringControlGain_Valu;
11564
11565 /* Step: '<S272>/Step' */
11566 PositionFinalLimited = L4_MABX_M->Timing.t[0];
11567 if (PositionFinalLimited < L4_MABX_P.Step_Time) {
11568 L4_MABX_B.Step = L4_MABX_P.Step_Y0;
11569 } else {
11570 L4_MABX_B.Step = L4_MABX_P.Step_YFinal;
11571 }
11572
11573 /* End of Step: '<S272>/Step' */
11574
11575 /* DataTypeConversion: '<S272>/Data Type Conversion' */
11576 L4_MABX_B.DataTypeConversion_dn = (L4_MABX_B.Step != 0.0);
11577
11578 /* Product: '<S283>/Divide' incorporates:
11579 * Constant: '<S272>/Constant'
11580 * Constant: '<S272>/Constant1'
11581 */
11582 L4_MABX_B.Divide_d0 = (real32_T)(L4_MABX_P.Constant1_Value_iy /
11583 L4_MABX_P.Constant_Value_d);
11584
11585 /* RateTransition: '<S80>/TmpRTBAtsignCurveOffsetInport1' */
11586 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
11587 L4_MABX_B.TmpRTBAtsignCurveOffsetInport1 =
11588 L4_MABX_DW.TmpRTBAtsignCurveOffsetInport1_;
11589 }
11590
11591 /* Gain: '<S80>/signCurveOffset' */
11592 L4_MABX_B.signCurveOffset = L4_MABX_P.signCurveOffset_Gain *
11593 L4_MABX_B.TmpRTBAtsignCurveOffsetInport1;
11594
11595 /* UnitDelay: '<S283>/Unit Delay' */
11596 L4_MABX_B.UnitDelay_lj = L4_MABX_DW.UnitDelay_DSTATE_m1;
11597
11598 /* Switch: '<S287>/Switch1' incorporates:
11599 * Constant: '<S283>/E'
11600 * Switch: '<S285>/Switch1'
11601 */
11602 if (L4_MABX_B.DataTypeConversion_dn) {
11603 /* DataTypeConversion: '<S283>/Data Type Conversion1' incorporates:
11604 * Constant: '<S283>/IV'
11605 */
11606 L4_MABX_B.DataTypeConversion1_gp = (real32_T)L4_MABX_P.IV_Value_o;
11607 L4_MABX_B.Switch1_pb = L4_MABX_B.DataTypeConversion1_gp;
11608 } else {
11609 if (L4_MABX_P.E_Value_ct) {
11610 /* DataTypeConversion: '<S283>/Data Type Conversion' incorporates:
11611 * Switch: '<S285>/Switch1'
11612 */
11613 L4_MABX_B.DataTypeConversion_mv = (real32_T)L4_MABX_B.signCurveOffset;
11614
11615 /* Sum: '<S283>/Add3' incorporates:
11616 * Switch: '<S285>/Switch1'
11617 */
11618 L4_MABX_B.Add3_p = L4_MABX_B.DataTypeConversion_mv -
11619 L4_MABX_B.UnitDelay_lj;
11620
11621 /* Product: '<S283>/Product1' incorporates:
11622 * Switch: '<S285>/Switch1'
11623 */
11624 L4_MABX_B.Product1_ce = L4_MABX_B.Divide_d0 * L4_MABX_B.Add3_p;
11625
11626 /* Sum: '<S283>/Add' incorporates:
11627 * Switch: '<S285>/Switch1'
11628 */
11629 L4_MABX_B.Add_a = L4_MABX_B.Product1_ce + L4_MABX_B.UnitDelay_lj;
11630
11631 /* Switch: '<S285>/Switch1' */
11632 L4_MABX_B.Switch1_aq = L4_MABX_B.Add_a;
11633 } else {
11634 /* Switch: '<S285>/Switch1' */
11635 L4_MABX_B.Switch1_aq = L4_MABX_B.UnitDelay_lj;
11636 }
11637
11638 L4_MABX_B.Switch1_pb = L4_MABX_B.Switch1_aq;
11639 }
11640
11641 /* End of Switch: '<S287>/Switch1' */
11642
11643 /* DataTypeConversion: '<S284>/Conversion' */
11644 L4_MABX_B.Conversion_b = L4_MABX_B.Switch1_pb;
11645
11646 /* Gain: '<S80>/mm2m' */
11647 L4_MABX_B.mm2m = L4_MABX_P.mm2m_Gain * L4_MABX_B.correctedError;
11648
11649 /* Switch: '<S80>/Switch3' incorporates:
11650 * Constant: '<S80>/usePIDyForStanley'
11651 */
11652 if (L4_MABX_P.usePIDyForStanley_Value != 0.0) {
11653 L4_MABX_B.Switch3 = L4_MABX_B.Switch2_i;
11654 } else {
11655 L4_MABX_B.Switch3 = L4_MABX_B.mm2m;
11656 }
11657
11658 /* End of Switch: '<S80>/Switch3' */
11659
11660 /* Gain: '<S80>/sign3' */
11661 L4_MABX_B.sign3 = L4_MABX_P.sign3_Gain * L4_MABX_B.Switch3;
11662
11663 /* Sum: '<S80>/crossTrackError' */
11664 L4_MABX_B.crossTrackError = L4_MABX_B.Conversion_b + L4_MABX_B.sign3;
11665
11666 /* Product: '<S277>/Product' */
11667 L4_MABX_B.Product_p = L4_MABX_B.AdjustedStanleyGain *
11668 L4_MABX_B.crossTrackError;
11669
11670 /* Saturate: '<S277>/Saturation' */
11671 DeltaTime = L4_MABX_B.DataTypeConversion_k;
11672 Time56 = L4_MABX_P.Saturation_LowerSat_bq;
11673 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_e;
11674 if (DeltaTime > PositionFinalLimited) {
11675 L4_MABX_B.Saturation_a = PositionFinalLimited;
11676 } else if (DeltaTime < Time56) {
11677 L4_MABX_B.Saturation_a = Time56;
11678 } else {
11679 L4_MABX_B.Saturation_a = DeltaTime;
11680 }
11681
11682 /* End of Saturate: '<S277>/Saturation' */
11683
11684 /* Gain: '<S277>/kph2mps_' */
11685 L4_MABX_B.kph2mps_ = L4_MABX_P.kph2mps_Gain * L4_MABX_B.Saturation_a;
11686
11687 /* Trigonometry: '<S277>/Trigonometric Function' */
11688 L4_MABX_B.TrigonometricFunction_p = rt_atan2d_snf(L4_MABX_B.Product_p,
11689 L4_MABX_B.kph2mps_);
11690
11691 /* Gain: '<S80>/deg2rad1' */
11692 L4_MABX_B.deg2rad1 = L4_MABX_P.deg2rad1_Gain * L4_MABX_B.uDLookupTable1;
11693
11694 /* RateTransition: '<S277>/TmpRTBAtAdd2Inport2' */
11695 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
11696 L4_MABX_B.TmpRTBAtAdd2Inport2 = L4_MABX_DW.TmpRTBAtAdd2Inport2_Buffer0;
11697 }
11698
11699 /* Sum: '<S277>/Add2' */
11700 L4_MABX_B.Add2_g = L4_MABX_B.deg2rad1 - L4_MABX_B.TmpRTBAtAdd2Inport2;
11701
11702 /* Gain: '<S277>/desHeadingWeight' */
11703 L4_MABX_B.desHeadingWeight = L4_MABX_P.desHeadingWeight_Gain *
11704 L4_MABX_B.Add2_g;
11705
11706 /* Sum: '<S277>/Add1' */
11707 L4_MABX_B.Add1_h = L4_MABX_B.TrigonometricFunction_p +
11708 L4_MABX_B.desHeadingWeight;
11709
11710 /* DataTypeConversion: '<S299>/Data Type Conversion' incorporates:
11711 * Constant: '<S299>/RATE_LIMITER_ENABLE_APV'
11712 */
11713 L4_MABX_B.DataTypeConversion_l5 = (real_T)RATE_LIMITER_ENABLE_APV;
11714
11715 /* Lookup_n-D: '<S299>/Saturation Speed Lookup' */
11716 L4_MABX_B.SaturationSpeedLookup = look1_binlcapw
11717 (L4_MABX_B.DataTypeConversion_k, L4_MABX_P.SaturationSpeedLookup_bp01Data,
11718 L4_MABX_P.SaturationSpeedLookup_tableData, 5U);
11719
11720 /* RelationalOperator: '<S293>/Relational Operator1' incorporates:
11721 * Constant: '<S274>/Constant3'
11722 */
11723 L4_MABX_B.RelationalOperator1_gr = (Curvature >=
11724 Lateral_Control_Curvature_Limit);
11725
11726 /* RelationalOperator: '<S293>/Relational Operator' incorporates:
11727 * Constant: '<S274>/Constant5'
11728 */
11729 PositionFinalLimited = -Lateral_Control_Curvature_Limit;
11730 L4_MABX_B.RelationalOperator_o = (Curvature <= PositionFinalLimited);
11731
11732 /* Outputs for Atomic SubSystem: '<S293>/If_Then_Else1' */
11733 /* Constant: '<S274>/Constant5' */
11734 PositionFinalLimited = -Lateral_Control_Curvature_Limit;
11735 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_o, PositionFinalLimited,
11736 Curvature, &L4_MABX_B.If_Then_Else1_d);
11737
11738 /* End of Outputs for SubSystem: '<S293>/If_Then_Else1' */
11739
11740 /* Outputs for Atomic SubSystem: '<S293>/If_Then_Else' */
11741
11742 /* Constant: '<S274>/Constant3' */
11743 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_gr,
11744 Lateral_Control_Curvature_Limit,
11745 L4_MABX_B.If_Then_Else1_d.Switch,
11746 &L4_MABX_B.If_Then_Else_pe);
11747
11748 /* End of Outputs for SubSystem: '<S293>/If_Then_Else' */
11749
11750 /* Abs: '<S299>/Abs' */
11751 L4_MABX_B.Abs_ig = fabs(L4_MABX_B.If_Then_Else_pe.Switch);
11752
11753 /* Lookup_n-D: '<S299>/Curvature Lookup Table' */
11754 L4_MABX_B.RateCurvature = look1_binlcapw(L4_MABX_B.Abs_ig,
11755 L4_MABX_P.CurvatureLookupTable_bp01Data,
11756 L4_MABX_P.CurvatureLookupTable_tableData, 4U);
11757
11758 /* DiscreteTransferFcn: '<S274>/Error 5Hz LPF' */
11759 PositionFinalLimited = L4_MABX_P.Error5HzLPF_NumCoef[1] *
11760 L4_MABX_DW.Error5HzLPF_states[0];
11761 PositionFinalLimited += L4_MABX_P.Error5HzLPF_NumCoef[2] *
11762 L4_MABX_DW.Error5HzLPF_states[1];
11763 PositionFinalLimited += L4_MABX_P.Error5HzLPF_NumCoef[3] *
11764 L4_MABX_DW.Error5HzLPF_states[2];
11765 L4_MABX_B.Lateral_Control_Heading_Error = PositionFinalLimited;
11766
11767 /* Abs: '<S299>/Abs1' */
11768 L4_MABX_B.Abs1_ft = fabs(L4_MABX_B.Lateral_Control_Heading_Error);
11769
11770 /* Lookup_n-D: '<S299>/Error Lookup Table' */
11771 L4_MABX_B.RateError = look1_binlcapw(L4_MABX_B.Abs1_ft,
11772 L4_MABX_P.ErrorLookupTable_bp01Data, L4_MABX_P.ErrorLookupTable_tableData,
11773 4U);
11774
11775 /* MinMax: '<S299>/Max' */
11776 DeltaTime = L4_MABX_B.RateCurvature;
11777 PositionFinalLimited = L4_MABX_B.RateError;
11778 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
11779 PositionFinalLimited = DeltaTime;
11780 }
11781
11782 L4_MABX_B.Max = PositionFinalLimited;
11783
11784 /* End of MinMax: '<S299>/Max' */
11785
11786 /* Lookup_n-D: '<S299>/Speed Lookup Table' */
11787 L4_MABX_B.RateSpeed = look1_binlcapw(L4_MABX_B.DataTypeConversion_k,
11788 L4_MABX_P.SpeedLookupTable_bp01Data, L4_MABX_P.SpeedLookupTable_tableData,
11789 5U);
11790
11791 /* MinMax: '<S299>/Min' */
11792 DeltaTime = L4_MABX_B.Max;
11793 PositionFinalLimited = L4_MABX_B.RateSpeed;
11794 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
11795 PositionFinalLimited = DeltaTime;
11796 }
11797
11798 L4_MABX_B.Min = PositionFinalLimited;
11799
11800 /* End of MinMax: '<S299>/Min' */
11801
11802 /* RateLimiter: '<S299>/Limit Rate Limiter' */
11803 PositionFinalLimited = L4_MABX_B.Min - L4_MABX_DW.PrevY;
11804 if (PositionFinalLimited > L4_MABX_P.LimitRateLimiter_RisingLim) {
11805 L4_MABX_B.RateLimitUpper = L4_MABX_DW.PrevY +
11806 L4_MABX_P.LimitRateLimiter_RisingLim;
11807 } else if (PositionFinalLimited < L4_MABX_P.LimitRateLimiter_FallingLim) {
11808 L4_MABX_B.RateLimitUpper = L4_MABX_DW.PrevY +
11809 L4_MABX_P.LimitRateLimiter_FallingLim;
11810 } else {
11811 L4_MABX_B.RateLimitUpper = L4_MABX_B.Min;
11812 }
11813
11814 L4_MABX_DW.PrevY = L4_MABX_B.RateLimitUpper;
11815
11816 /* End of RateLimiter: '<S299>/Limit Rate Limiter' */
11817
11818 /* SampleTimeMath: '<S308>/sample time'
11819 *
11820 * About '<S308>/sample time':
11821 * y = K where K = ( w * Ts )
11822 */
11823 L4_MABX_B.sampletime = L4_MABX_P.sampletime_WtEt;
11824
11825 /* Product: '<S308>/delta rise limit' */
11826 L4_MABX_B.deltariselimit = L4_MABX_B.RateLimitUpper * L4_MABX_B.sampletime;
11827
11828 /* RelationalOperator: '<S295>/Relational Operator1' incorporates:
11829 * Constant: '<S274>/Constant'
11830 */
11831 L4_MABX_B.RelationalOperator1_ps = (L4_MABX_B.Lateral_Control_Heading_Error >=
11832 Lateral_Control_Error_Limit);
11833
11834 /* RelationalOperator: '<S295>/Relational Operator' incorporates:
11835 * Constant: '<S274>/Constant1'
11836 */
11837 PositionFinalLimited = -Lateral_Control_Error_Limit;
11838 L4_MABX_B.RelationalOperator_h = (L4_MABX_B.Lateral_Control_Heading_Error <=
11839 PositionFinalLimited);
11840
11841 /* Outputs for Atomic SubSystem: '<S295>/If_Then_Else1' */
11842 /* Constant: '<S274>/Constant1' */
11843 PositionFinalLimited = -Lateral_Control_Error_Limit;
11844 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_h, PositionFinalLimited,
11845 L4_MABX_B.Lateral_Control_Heading_Error,
11846 &L4_MABX_B.If_Then_Else1_k);
11847
11848 /* End of Outputs for SubSystem: '<S295>/If_Then_Else1' */
11849
11850 /* Outputs for Atomic SubSystem: '<S295>/If_Then_Else' */
11851
11852 /* Constant: '<S274>/Constant' */
11853 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_ps,
11854 Lateral_Control_Error_Limit,
11855 L4_MABX_B.If_Then_Else1_k.Switch,
11856 &L4_MABX_B.If_Then_Else_pn);
11857
11858 /* End of Outputs for SubSystem: '<S295>/If_Then_Else' */
11859
11860 /* Outputs for Atomic SubSystem: '<S274>/If_Then_Else1' */
11861
11862 /* Constant: '<S274>/Zero' */
11863 L4_MABX_If_Then_Else_g(AutonomousEnabled, L4_MABX_B.If_Then_Else_pn.Switch,
11864 L4_MABX_P.Zero_Value, &L4_MABX_B.If_Then_Else1_m);
11865
11866 /* End of Outputs for SubSystem: '<S274>/If_Then_Else1' */
11867
11868 /* Gain: '<S298>/Proportional Gain' */
11869 L4_MABX_B.ProportionalGain = Lateral_Control_P *
11870 L4_MABX_B.If_Then_Else1_m.Switch;
11871
11872 /* DiscreteIntegrator: '<S298>/Integrator' */
11873 if (AutonomousEnabled && (L4_MABX_DW.Integrator_PrevResetState <= 0)) {
11874 L4_MABX_DW.Integrator_DSTATE = L4_MABX_P.Integrator_IC;
11875 }
11876
11877 L4_MABX_B.Integrator = L4_MABX_DW.Integrator_DSTATE;
11878
11879 /* End of DiscreteIntegrator: '<S298>/Integrator' */
11880
11881 /* Gain: '<S298>/Derivative Gain' */
11882 L4_MABX_B.DerivativeGain = Lateral_Control_D *
11883 L4_MABX_B.If_Then_Else1_m.Switch;
11884
11885 /* DiscreteIntegrator: '<S298>/Filter' */
11886 if (AutonomousEnabled && (L4_MABX_DW.Filter_PrevResetState <= 0)) {
11887 L4_MABX_DW.Filter_DSTATE = L4_MABX_P.Filter_IC;
11888 }
11889
11890 L4_MABX_B.Filter = L4_MABX_DW.Filter_DSTATE;
11891
11892 /* End of DiscreteIntegrator: '<S298>/Filter' */
11893
11894 /* Sum: '<S298>/SumD' */
11895 L4_MABX_B.SumD = L4_MABX_B.DerivativeGain - L4_MABX_B.Filter;
11896
11897 /* Gain: '<S298>/Filter Coefficient' */
11898 L4_MABX_B.FilterCoefficient = L4_MABX_P.PIDController_N * L4_MABX_B.SumD;
11899
11900 /* Sum: '<S298>/Sum' */
11901 L4_MABX_B.Sum_c = (L4_MABX_B.ProportionalGain + L4_MABX_B.Integrator) +
11902 L4_MABX_B.FilterCoefficient;
11903
11904 /* Saturate: '<S298>/Saturate' */
11905 DeltaTime = L4_MABX_B.Sum_c;
11906 Time56 = L4_MABX_P.PIDController_LowerSaturationLi;
11907 PositionFinalLimited = L4_MABX_P.PIDController_UpperSaturationLi;
11908 if (DeltaTime > PositionFinalLimited) {
11909 L4_MABX_B.Saturate = PositionFinalLimited;
11910 } else if (DeltaTime < Time56) {
11911 L4_MABX_B.Saturate = Time56;
11912 } else {
11913 L4_MABX_B.Saturate = DeltaTime;
11914 }
11915
11916 /* End of Saturate: '<S298>/Saturate' */
11917
11918 /* UnitDelay: '<S300>/Delay Input' */
11919 L4_MABX_B.Uk1_m = L4_MABX_DW.DelayInput_DSTATE;
11920
11921 /* Gain: '<S300>/GainZero' */
11922 L4_MABX_B.ZeroUk1 = Lateral_Control_Zero * L4_MABX_B.Uk1_m;
11923
11924 /* UnitDelay: '<S300>/Delay Output' */
11925 L4_MABX_B.Yk1 = L4_MABX_DW.DelayOutput_DSTATE;
11926
11927 /* Gain: '<S300>/GainPole' */
11928 L4_MABX_B.PoleYk1 = Lateral_Control_Pole * L4_MABX_B.Yk1;
11929
11930 /* Sum: '<S300>/Sum' */
11931 L4_MABX_B.PoleYk1UkZeroUk1 = (L4_MABX_B.Saturate - L4_MABX_B.ZeroUk1) +
11932 L4_MABX_B.PoleYk1;
11933
11934 /* DataTypeConversion: '<S300>/Downcast' */
11935 L4_MABX_B.Downcast = L4_MABX_B.PoleYk1UkZeroUk1;
11936
11937 /* Lookup_n-D: '<S274>/1-D Lookup Table' */
11938 L4_MABX_B.uDLookupTable_j = look1_binlxpw(ReAX_ActualHandwheelPos,
11939 L4_MABX_P.uDLookupTable_bp01Data_d, L4_MABX_P.uDLookupTable_tableData_d, 71U);
11940
11941 /* Gain: '<S274>/deg2rad' */
11942 L4_MABX_B.deg2rad = L4_MABX_P.deg2rad_Gain_l * L4_MABX_B.uDLookupTable_j;
11943
11944 /* Gain: '<S274>/PGain' */
11945 L4_MABX_B.PGain = Lateral_Control_P * L4_MABX_B.If_Then_Else_pn.Switch;
11946
11947 /* DiscreteTransferFcn: '<S274>/5Hz LPF' */
11948 PositionFinalLimited = L4_MABX_P.uHzLPF_NumCoef[1] * L4_MABX_DW.uHzLPF_states
11949 [0];
11950 PositionFinalLimited += L4_MABX_P.uHzLPF_NumCoef[2] *
11951 L4_MABX_DW.uHzLPF_states[1];
11952 PositionFinalLimited += L4_MABX_P.uHzLPF_NumCoef[3] *
11953 L4_MABX_DW.uHzLPF_states[2];
11954 L4_MABX_B.uHzLPF = PositionFinalLimited;
11955
11956 /* Sum: '<S274>/Sum3' */
11957 L4_MABX_B.Sum3 = (L4_MABX_B.deg2rad - L4_MABX_B.PGain) - L4_MABX_B.uHzLPF;
11958
11959 /* DiscreteIntegrator: '<S292>/Discrete-Time Integrator' */
11960 if (L4_MABX_DW.DiscreteTimeIntegrator_IC_LOADI != 0) {
11961 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE = L4_MABX_B.Sum3;
11962 }
11963
11964 if (AutonomousEnabled && (L4_MABX_DW.DiscreteTimeIntegrator_PrevRese <= 0)) {
11965 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE = L4_MABX_B.Sum3;
11966 }
11967
11968 L4_MABX_B.DiscreteTimeIntegrator = L4_MABX_DW.DiscreteTimeIntegrator_DSTATE;
11969
11970 /* End of DiscreteIntegrator: '<S292>/Discrete-Time Integrator' */
11971
11972 /* Sum: '<S274>/Sum4' */
11973 L4_MABX_B.Sum4 = L4_MABX_B.Downcast + L4_MABX_B.DiscreteTimeIntegrator;
11974
11975 /* Sum: '<S274>/Sum1' */
11976 Lateral_Control_Output = L4_MABX_B.Sum4 + L4_MABX_B.uHzLPF;
11977
11978 /* UnitDelay: '<S308>/Delay Input2' */
11979 L4_MABX_B.Yk1_p = L4_MABX_DW.DelayInput2_DSTATE;
11980
11981 /* Sum: '<S308>/Difference Inputs1' */
11982 L4_MABX_B.UkYk1 = Lateral_Control_Output - L4_MABX_B.Yk1_p;
11983
11984 /* RelationalOperator: '<S310>/LowerRelop1' */
11985 L4_MABX_B.LowerRelop1_l = (L4_MABX_B.UkYk1 > L4_MABX_B.deltariselimit);
11986
11987 /* Gain: '<S299>/Gain3' */
11988 L4_MABX_B.RateLimitLower = L4_MABX_P.Gain3_Gain_p * L4_MABX_B.RateLimitUpper;
11989
11990 /* Product: '<S308>/delta fall limit' */
11991 L4_MABX_B.deltafalllimit = L4_MABX_B.RateLimitLower * L4_MABX_B.sampletime;
11992
11993 /* RelationalOperator: '<S310>/UpperRelop' */
11994 L4_MABX_B.UpperRelop_k = (L4_MABX_B.UkYk1 < L4_MABX_B.deltafalllimit);
11995
11996 /* Switch: '<S310>/Switch' */
11997 if (L4_MABX_B.UpperRelop_k) {
11998 L4_MABX_B.Switch_f = L4_MABX_B.deltafalllimit;
11999 } else {
12000 L4_MABX_B.Switch_f = L4_MABX_B.UkYk1;
12001 }
12002
12003 /* End of Switch: '<S310>/Switch' */
12004
12005 /* Switch: '<S310>/Switch2' */
12006 if (L4_MABX_B.LowerRelop1_l) {
12007 L4_MABX_B.Switch2_f = L4_MABX_B.deltariselimit;
12008 } else {
12009 L4_MABX_B.Switch2_f = L4_MABX_B.Switch_f;
12010 }
12011
12012 /* End of Switch: '<S310>/Switch2' */
12013
12014 /* Sum: '<S308>/Difference Inputs2' */
12015 L4_MABX_B.DifferenceInputs2 = L4_MABX_B.Switch2_f + L4_MABX_B.Yk1_p;
12016
12017 /* RelationalOperator: '<S309>/LowerRelop1' */
12018 L4_MABX_B.LowerRelop1_e = (L4_MABX_B.DifferenceInputs2 >
12019 L4_MABX_B.SaturationSpeedLookup);
12020
12021 /* Gain: '<S299>/Gain1' */
12022 L4_MABX_B.Gain1_f = L4_MABX_P.Gain1_Gain_p * L4_MABX_B.SaturationSpeedLookup;
12023
12024 /* RelationalOperator: '<S309>/UpperRelop' */
12025 L4_MABX_B.UpperRelop_f = (L4_MABX_B.DifferenceInputs2 < L4_MABX_B.Gain1_f);
12026
12027 /* Switch: '<S309>/Switch' */
12028 if (L4_MABX_B.UpperRelop_f) {
12029 L4_MABX_B.Switch_hx = L4_MABX_B.Gain1_f;
12030 } else {
12031 L4_MABX_B.Switch_hx = L4_MABX_B.DifferenceInputs2;
12032 }
12033
12034 /* End of Switch: '<S309>/Switch' */
12035
12036 /* Switch: '<S309>/Switch2' */
12037 if (L4_MABX_B.LowerRelop1_e) {
12038 L4_MABX_B.Switch2_k = L4_MABX_B.SaturationSpeedLookup;
12039 } else {
12040 L4_MABX_B.Switch2_k = L4_MABX_B.Switch_hx;
12041 }
12042
12043 /* End of Switch: '<S309>/Switch2' */
12044
12045 /* Outputs for Atomic SubSystem: '<S299>/If_Then_Else' */
12046 L4_MABX_If_Then_Else_c(L4_MABX_B.DataTypeConversion_l5, L4_MABX_B.Switch2_k,
12047 Lateral_Control_Output, &L4_MABX_B.If_Then_Else_co);
12048
12049 /* End of Outputs for SubSystem: '<S299>/If_Then_Else' */
12050
12051 /* SignalConversion: '<S299>/TmpSignal ConversionAtIf_Then_ElseOutport1' */
12052 Lateral_Control_Rate_Limiter_Output = L4_MABX_B.If_Then_Else_co.Switch;
12053
12054 /* Outputs for Atomic SubSystem: '<S274>/If_Then_Else' */
12055 L4_MABX_If_Then_Else_g(AutonomousEnabled, Lateral_Control_Rate_Limiter_Output,
12056 L4_MABX_B.deg2rad, &L4_MABX_B.If_Then_Else_m1);
12057
12058 /* End of Outputs for SubSystem: '<S274>/If_Then_Else' */
12059
12060 /* DataTypeConversion: '<S80>/Data Type Conversion6' */
12061 L4_MABX_B.DataTypeConversion6_p = L4_MABX_B.If_Then_Else_m1.Switch;
12062
12063 /* Gain: '<S80>/rad2deg' */
12064 L4_MABX_B.rad2deg = L4_MABX_P.rad2deg_Gain * L4_MABX_B.DataTypeConversion6_p;
12065
12066 /* Gain: '<S80>/sign1' */
12067 SteerCommandDeg = L4_MABX_P.sign1_Gain * L4_MABX_B.rad2deg;
12068
12069 /* MultiPortSwitch: '<S80>/Multiport Switch1' incorporates:
12070 * Constant: '<S80>/LONG_SPEED_SRC_SELECTOR_APV'
12071 * Constant: '<S80>/SteeringOverrideVal1'
12072 */
12073 switch (LONG_SPEED_SRC_SELECTOR_APV) {
12074 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
12075 /* MultiPortSwitch: '<S80>/Multiport Switch' incorporates:
12076 * Constant: '<S80>/SteeringControlSRC'
12077 * Constant: '<S80>/SteeringOverrideVal'
12078 */
12079 switch (L4_MABX_P.SteeringControlSRC_Value) {
12080 case 0:
12081 L4_MABX_B.MultiportSwitch_f = L4_MABX_P.SteeringOverrideVal_Value;
12082 break;
12083
12084 case 1:
12085 L4_MABX_B.MultiportSwitch_f = L4_MABX_B.Switch2_i;
12086 break;
12087
12088 case 2:
12089 /* DataTypeConversion: '<S80>/Data Type Conversion2' */
12090 L4_MABX_B.DataTypeConversion2_o = L4_MABX_B.Add2;
12091 L4_MABX_B.MultiportSwitch_f = L4_MABX_B.DataTypeConversion2_o;
12092 break;
12093
12094 default:
12095 /* DataTypeConversion: '<S80>/Data Type Conversion3' */
12096 L4_MABX_B.DataTypeConversion3_pl = L4_MABX_B.Add1_h;
12097 L4_MABX_B.MultiportSwitch_f = L4_MABX_B.DataTypeConversion3_pl;
12098 break;
12099 }
12100
12101 /* End of MultiPortSwitch: '<S80>/Multiport Switch' */
12102
12103 /* Gain: '<S80>/rad2deg2' */
12104 L4_MABX_B.rad2deg2 = L4_MABX_P.rad2deg2_Gain * L4_MABX_B.MultiportSwitch_f;
12105 L4_MABX_B.MultiportSwitch1 = L4_MABX_B.rad2deg2;
12106 break;
12107
12108 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
12109 L4_MABX_B.MultiportSwitch1 = L4_MABX_P.SteeringOverrideVal1_Value;
12110 break;
12111
12112 default:
12113 L4_MABX_B.MultiportSwitch1 = SteerCommandDeg;
12114 break;
12115 }
12116
12117 /* End of MultiPortSwitch: '<S80>/Multiport Switch1' */
12118
12119 /* Lookup_n-D: '<S270>/1D_Lookup_Table' */
12120 L4_MABX_B.uD_Lookup_Table_a = look1_binlcapw(L4_MABX_B.MultiportSwitch1,
12121 STEERCTRL_WHEEL_ANGLE_STEP_MPV, STEERCTRL_WHEEL_ANGLE_DATA_MPV, 71U);
12122
12123 /* DataTypeConversion: '<S80>/Data Type Conversion4' */
12124 L4_MABX_B.numLanePoints_j = L4_MABX_B.DataTypeConversion5_e3;
12125
12126 /* DiscreteIntegrator: '<S80>/Discrete-Time Integrator' incorporates:
12127 * Constant: '<S80>/ResetIntegrator'
12128 */
12129 if ((L4_MABX_P.ResetIntegrator_Value != 0.0) ||
12130 (L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e != 0)) {
12131 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
12132 L4_MABX_P.DiscreteTimeIntegrator_IC;
12133 }
12134
12135 if (L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e >=
12136 L4_MABX_P.DiscreteTimeIntegrator_UpperSat) {
12137 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
12138 L4_MABX_P.DiscreteTimeIntegrator_UpperSat;
12139 } else {
12140 if (L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e <=
12141 L4_MABX_P.DiscreteTimeIntegrator_LowerSat) {
12142 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
12143 L4_MABX_P.DiscreteTimeIntegrator_LowerSat;
12144 }
12145 }
12146
12147 L4_MABX_B.DiscreteTimeIntegrator_h =
12148 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e;
12149
12150 /* End of DiscreteIntegrator: '<S80>/Discrete-Time Integrator' */
12151
12152 /* RelationalOperator: '<S281>/Lower Test' incorporates:
12153 * Constant: '<S281>/Lower Limit'
12154 */
12155 L4_MABX_B.LowerTest = (L4_MABX_P.IntervalTest_lowlimit <= L4_MABX_B.Divide_nn);
12156
12157 /* RelationalOperator: '<S281>/Upper Test' incorporates:
12158 * Constant: '<S281>/Upper Limit'
12159 */
12160 L4_MABX_B.UpperTest = (L4_MABX_B.Divide_nn <= L4_MABX_P.IntervalTest_uplimit);
12161
12162 /* Logic: '<S281>/AND' */
12163 L4_MABX_B.AND_p = (L4_MABX_B.LowerTest && L4_MABX_B.UpperTest);
12164
12165 /* Assertion: '<S278>/Assertion' */
12166 utAssert(L4_MABX_B.AND_p);
12167
12168 /* RelationalOperator: '<S286>/Lower Test' incorporates:
12169 * Constant: '<S286>/Lower Limit'
12170 */
12171 L4_MABX_B.LowerTest_l = (L4_MABX_P.IntervalTest_lowlimit_k <=
12172 L4_MABX_B.Divide_d0);
12173
12174 /* RelationalOperator: '<S286>/Upper Test' incorporates:
12175 * Constant: '<S286>/Upper Limit'
12176 */
12177 L4_MABX_B.UpperTest_e = (L4_MABX_B.Divide_d0 <=
12178 L4_MABX_P.IntervalTest_uplimit_e);
12179
12180 /* Logic: '<S286>/AND' */
12181 L4_MABX_B.AND_j = (L4_MABX_B.LowerTest_l && L4_MABX_B.UpperTest_e);
12182
12183 /* Assertion: '<S283>/Assertion' */
12184 utAssert(L4_MABX_B.AND_j);
12185
12186 /* Switch: '<S289>/Switch' incorporates:
12187 * Constant: '<S273>/Constant8'
12188 * Constant: '<S273>/Constant9'
12189 */
12190 if (L4_MABX_P.Constant8_Value_l) {
12191 L4_MABX_B.Switch_k = L4_MABX_P.Constant9_Value;
12192 } else {
12193 L4_MABX_B.Switch_k = L4_MABX_B.Add_px;
12194 }
12195
12196 /* End of Switch: '<S289>/Switch' */
12197
12198 /* RelationalOperator: '<S80>/Relational Operator' incorporates:
12199 * Constant: '<S80>/Constant1'
12200 */
12201 L4_MABX_B.RelationalOperator_oq = (L4_MABX_B.DataTypeConversion5_e3 >=
12202 L4_MABX_P.Constant1_Value_ls);
12203
12204 /* Gain: '<S292>/Gain' */
12205 L4_MABX_B.Gain_o = L4_MABX_P.Gain_Gain_p * L4_MABX_B.DiscreteTimeIntegrator;
12206
12207 /* MATLAB Function: '<S274>/Error Calc' */
12208 /* MATLAB Function 'STEERCTRL_10ms/SteerController/Error Calc': '<S294>:1' */
12209 /* '<S294>:1:3' */
12210 L4_MABX_B.error = TargetAzimuth_rad - CurrentAzimuth_rad;
12211 if (L4_MABX_B.error < -3.1415926535897931) {
12212 /* '<S294>:1:5' */
12213 /* '<S294>:1:6' */
12214 L4_MABX_B.error += 6.2831853071795862;
12215 } else {
12216 if (L4_MABX_B.error > 3.1415926535897931) {
12217 /* '<S294>:1:7' */
12218 /* '<S294>:1:8' */
12219 L4_MABX_B.error -= 6.2831853071795862;
12220 }
12221 }
12222
12223 /* End of MATLAB Function: '<S274>/Error Calc' */
12224
12225 /* Gain: '<S274>/FeedforwardGain' */
12226 L4_MABX_B.FeedforwardGain = Curvature_FF_Gain *
12227 L4_MABX_B.If_Then_Else_pe.Switch;
12228
12229 /* Gain: '<S298>/Integral Gain' */
12230 L4_MABX_B.IntegralGain = Lateral_Control_I * L4_MABX_B.If_Then_Else1_m.Switch;
12231
12232 /* Sum: '<S299>/Subtract' */
12233 L4_MABX_B.Subtract_og = Lateral_Control_Output - L4_MABX_B.DifferenceInputs2;
12234
12235 /* Abs: '<S299>/Abs2' */
12236 L4_MABX_B.Abs2_k = fabs(L4_MABX_B.Subtract_og);
12237
12238 /* RelationalOperator: '<S306>/Compare' incorporates:
12239 * Constant: '<S306>/Constant'
12240 */
12241 RateLimiterActive = (L4_MABX_B.Abs2_k > L4_MABX_P.CompareToConstant_const_g);
12242
12243 /* RelationalOperator: '<S301>/Relational Operator1' incorporates:
12244 * Constant: '<S274>/Constant2'
12245 */
12246 L4_MABX_B.RelationalOperator1_f = (YawRate >= Lateral_Control_YawRate_Limit);
12247
12248 /* RelationalOperator: '<S301>/Relational Operator' incorporates:
12249 * Constant: '<S274>/Constant4'
12250 */
12251 PositionFinalLimited = -Lateral_Control_YawRate_Limit;
12252 L4_MABX_B.RelationalOperator_l4 = (YawRate <= PositionFinalLimited);
12253
12254 /* Outputs for Atomic SubSystem: '<S301>/If_Then_Else1' */
12255 /* Constant: '<S274>/Constant4' */
12256 PositionFinalLimited = -Lateral_Control_YawRate_Limit;
12257 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_l4, PositionFinalLimited,
12258 YawRate, &L4_MABX_B.If_Then_Else1_o0);
12259
12260 /* End of Outputs for SubSystem: '<S301>/If_Then_Else1' */
12261
12262 /* Outputs for Atomic SubSystem: '<S301>/If_Then_Else' */
12263
12264 /* Constant: '<S274>/Constant2' */
12265 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_f,
12266 Lateral_Control_YawRate_Limit,
12267 L4_MABX_B.If_Then_Else1_o0.Switch,
12268 &L4_MABX_B.If_Then_Else_m0);
12269
12270 /* End of Outputs for SubSystem: '<S301>/If_Then_Else' */
12271
12272 /* Gain: '<S274>/RateFeedbackGain' */
12273 L4_MABX_B.RateFeedbackGain = Yaw_Rate_FF_Gain *
12274 L4_MABX_B.If_Then_Else_m0.Switch;
12275
12276 /* Gain: '<S274>/UndersteerCorrection' */
12277 L4_MABX_B.UndersteerCorrection = UndersteerCorection *
12278 L4_MABX_B.FeedforwardGain;
12279
12280 /* Sum: '<S274>/Sum2' */
12281 L4_MABX_B.Sum2 = L4_MABX_B.UndersteerCorrection - L4_MABX_B.RateFeedbackGain;
12282
12283 /* UnitDelay: '<S80>/Unit Delay' */
12284 L4_MABX_B.UnitDelay_p = L4_MABX_DW.UnitDelay_DSTATE_e;
12285
12286 /* Switch: '<S80>/Switch1' incorporates:
12287 * Constant: '<S80>/Constant2'
12288 * Switch: '<S80>/Switch2'
12289 */
12290 if (L4_MABX_B.RelationalOperator_oq) {
12291 /* Product: '<S80>/Product3' incorporates:
12292 * Constant: '<S80>/SteeringControlNewIGain1'
12293 */
12294 L4_MABX_B.Product3 = L4_MABX_B.mm2m *
12295 L4_MABX_P.SteeringControlNewIGain1_Value;
12296 L4_MABX_B.Switch1_p = L4_MABX_B.Product3;
12297
12298 /* Gain: '<S80>/deg2rad' */
12299 L4_MABX_B.deg2rad_d = L4_MABX_P.deg2rad_Gain * L4_MABX_B.SFunction1_o1_dc;
12300
12301 /* Product: '<S80>/Product2' incorporates:
12302 * Constant: '<S80>/SteeringControlNewPGain1'
12303 */
12304 L4_MABX_B.Product2_my = L4_MABX_B.deg2rad_d *
12305 L4_MABX_P.SteeringControlNewPGain1_Value;
12306 L4_MABX_B.Switch2_i1 = L4_MABX_B.Product2_my;
12307 } else {
12308 L4_MABX_B.Switch1_p = L4_MABX_P.Constant2_Value_n;
12309 L4_MABX_B.Switch2_i1 = L4_MABX_B.UnitDelay_p;
12310 }
12311
12312 /* End of Switch: '<S80>/Switch1' */
12313
12314 /* Gain: '<S80>/sign2' */
12315 DesiredSteeringAngle = L4_MABX_P.sign2_Gain * L4_MABX_B.uD_Lookup_Table_a;
12316
12317 /* RelationalOperator: '<S340>/min_relop' incorporates:
12318 * Constant: '<S340>/min_val'
12319 */
12320 L4_MABX_B.min_relop_k0 = (L4_MABX_P.CheckStaticLowerBound_min_o <=
12321 L4_MABX_B.Divide_e);
12322
12323 /* Assertion: '<S340>/Assertion' */
12324 utAssert(L4_MABX_B.min_relop_k0);
12325
12326 /* Logic: '<S349>/Logical Operator2' */
12327 L4_MABX_B.LogicalOperator2_g = !L4_MABX_B.LogicalOperator1_p;
12328
12329 /* Switch: '<S358>/Reset' incorporates:
12330 * Constant: '<S353>/CPV'
12331 */
12332 if (L4_MABX_B.LogicalOperator1_ja) {
12333 L4_MABX_B.Xnew = L4_MABX_P.CPV_Value_h;
12334 } else {
12335 L4_MABX_B.Xnew = L4_MABX_B.If_Then_Else_gf.Switch;
12336 }
12337
12338 /* End of Switch: '<S358>/Reset' */
12339
12340 /* UnitDelay: '<S360>/FixPt Unit Delay2' */
12341 L4_MABX_B.FixPtUnitDelay2_j = L4_MABX_DW.FixPtUnitDelay2_DSTATE_aw;
12342
12343 /* Logic: '<S360>/FixPt Logical Operator' */
12344 L4_MABX_B.FixPtLogicalOperator_i = (uint8_T)(L4_MABX_B.LogicalOperator1_ja ||
12345 (L4_MABX_B.FixPtUnitDelay2_j != 0));
12346
12347 /* UnitDelay: '<S360>/FixPt Unit Delay1' */
12348 L4_MABX_B.Xold_d = L4_MABX_DW.FixPtUnitDelay1_DSTATE_pe;
12349
12350 /* Switch: '<S360>/Init' incorporates:
12351 * Constant: '<S354>/CPV'
12352 */
12353 if (L4_MABX_B.FixPtLogicalOperator_i != 0) {
12354 L4_MABX_B.Init_o = L4_MABX_P.CPV_Value_n;
12355 } else {
12356 L4_MABX_B.Init_o = L4_MABX_B.Xold_d;
12357 }
12358
12359 /* End of Switch: '<S360>/Init' */
12360
12361 /* UnitDelay: '<S361>/FixPt Unit Delay2' */
12362 L4_MABX_B.FixPtUnitDelay2_mz = L4_MABX_DW.FixPtUnitDelay2_DSTATE_gx;
12363
12364 /* Logic: '<S361>/FixPt Logical Operator' */
12365 L4_MABX_B.FixPtLogicalOperator_b = (uint8_T)(L4_MABX_B.LogicalOperator1_ja ||
12366 (L4_MABX_B.FixPtUnitDelay2_mz != 0));
12367
12368 /* UnitDelay: '<S361>/FixPt Unit Delay1' */
12369 L4_MABX_B.Xold_m = L4_MABX_DW.FixPtUnitDelay1_DSTATE_g0;
12370
12371 /* Switch: '<S361>/Init' incorporates:
12372 * Constant: '<S352>/CPV2'
12373 */
12374 if (L4_MABX_B.FixPtLogicalOperator_b != 0) {
12375 L4_MABX_B.Init_l = L4_MABX_P.CPV2_Value_p;
12376 } else {
12377 L4_MABX_B.Init_l = L4_MABX_B.Xold_m;
12378 }
12379
12380 /* End of Switch: '<S361>/Init' */
12381
12382 /* MultiPortSwitch: '<S359>/Multiport Switch' incorporates:
12383 * Constant: '<S352>/CPV2'
12384 * Constant: '<S359>/Integrator_method'
12385 */
12386 switch ((int32_T)L4_MABX_P.Integrator_method_Value) {
12387 case 1:
12388 L4_MABX_B.MultiportSwitch_i = L4_MABX_P.CPV2_Value_p;
12389 break;
12390
12391 case 2:
12392 L4_MABX_B.MultiportSwitch_i = L4_MABX_B.Init_l;
12393 break;
12394
12395 default:
12396 /* Sum: '<S359>/Add' incorporates:
12397 * Constant: '<S352>/CPV2'
12398 */
12399 L4_MABX_B.Add_py = L4_MABX_B.Init_l + L4_MABX_P.CPV2_Value_p;
12400
12401 /* Gain: '<S359>/Gain' */
12402 L4_MABX_B.u_trapezoidal = L4_MABX_P.Gain_Gain_j * L4_MABX_B.Add_py;
12403 L4_MABX_B.MultiportSwitch_i = L4_MABX_B.u_trapezoidal;
12404 break;
12405 }
12406
12407 /* End of MultiPortSwitch: '<S359>/Multiport Switch' */
12408
12409 /* DigitalClock: '<S355>/Digital Clock' */
12410 L4_MABX_B.DigitalClock_d = L4_MABX_M->Timing.t[0];
12411
12412 /* UnitDelay: '<S355>/Unit_Delay' */
12413 L4_MABX_B.Unit_Delay_p = L4_MABX_DW.Unit_Delay_DSTATE_j;
12414
12415 /* Sum: '<S355>/Subtract' */
12416 L4_MABX_B.Subtract_k = L4_MABX_B.DigitalClock_d - L4_MABX_B.Unit_Delay_p;
12417
12418 /* Product: '<S354>/Product1' incorporates:
12419 * Constant: '<S352>/CPV'
12420 */
12421 L4_MABX_B.Product1_am = L4_MABX_P.CPV_Value_g * L4_MABX_B.MultiportSwitch_i *
12422 L4_MABX_B.Subtract_k;
12423
12424 /* Sum: '<S354>/Add' */
12425 L4_MABX_B.Add_db = L4_MABX_B.Init_o + L4_MABX_B.Product1_am;
12426
12427 /* Switch: '<S361>/Reset' incorporates:
12428 * Constant: '<S352>/CPV2'
12429 */
12430 L4_MABX_B.Xnew_f = L4_MABX_P.CPV2_Value_p;
12431
12432 /* Switch: '<S360>/Reset' incorporates:
12433 * Constant: '<S354>/CPV'
12434 */
12435 if (L4_MABX_B.LogicalOperator1_ja) {
12436 L4_MABX_B.Xnew_h = L4_MABX_P.CPV_Value_n;
12437 } else {
12438 L4_MABX_B.Xnew_h = L4_MABX_B.Add_db;
12439 }
12440
12441 /* End of Switch: '<S360>/Reset' */
12442
12443 /* RelationalOperator: '<S368>/min_relop' incorporates:
12444 * Constant: '<S332>/FCW_CTRL_SLEW_INC_APV'
12445 * Constant: '<S368>/min_val'
12446 */
12447 L4_MABX_B.min_relop_c = (L4_MABX_P.CheckStaticLowerBound_min_h <=
12448 L4_MABX_P.FCW_CTRL_SLEW_INC_APV_Value);
12449
12450 /* Assertion: '<S368>/Assertion' */
12451 utAssert(L4_MABX_B.min_relop_c);
12452
12453 /* RelationalOperator: '<S379>/min_relop' incorporates:
12454 * Constant: '<S334>/STABILITY_CTRL_SLEW_INC_APV'
12455 * Constant: '<S379>/min_val'
12456 */
12457 L4_MABX_B.min_relop_f = (L4_MABX_P.CheckStaticLowerBound_min_nz <=
12458 L4_MABX_P.STABILITY_CTRL_SLEW_INC_APV_Val);
12459
12460 /* Assertion: '<S379>/Assertion' */
12461 utAssert(L4_MABX_B.min_relop_f);
12462
12463 /* End of Outputs for SubSystem: '<S65>/Task_10ms' */
12464
12465 /* Outputs for Enabled SubSystem: '<S607>/PosRapidUpdate_011' incorporates:
12466 * EnablePort: '<S608>/Enable'
12467 */
12468 /* Constant: '<S434>/Constant' */
12469 if (L4_MABX_P.Constant_Value_m3 > 0.0) {
12470 /* S-Function (rti_commonblock): '<S608>/S-Function1' */
12471 /* This comment workarounds a code generation problem */
12472
12473 /* dSPACE RTICAN RX Message Block: "PosRapidUpdate_01" Id:167248128 */
12474 {
12475 UInt32 *CAN_Msg;
12476 static dsfloat time_old = 0.0;
12477
12478 /* Read status and timestamp info (previous message) */
12479 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80100].timestamp !=
12480 time_old) {
12481 /* ... save timestamp info for the calculation of the RX status
12482 during the consecutive sample hit*/
12483 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80100].
12484 timestamp;
12485
12486 /* ... set the processed flag to one */
12487 L4_MABX_B.SFunction1_o3_e = 1.0;
12488 L4_MABX_B.SFunction1_o4_mw = (real_T)
12489 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80100].timestamp;
12490 L4_MABX_B.SFunction1_o5_k = (real_T)
12491 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80100].deltatime;
12492 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80100].data;
12493
12494 /* Decode CAN message */
12495 {
12496 {
12497 rtican_Signal_t CAN_Sgn;
12498
12499 /* ...... "Latitude_" (0|32, standard signal, signed int, little endian) */
12500 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12501 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
12502 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[2];
12503 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[3];
12504 L4_MABX_B.SFunction1_o1_on = 1.0E-7 * ( ((real_T) CAN_Sgn.SignedSgn)
12505 );
12506
12507 /* ...... "Longitude_" (32|32, standard signal, signed int, little endian) */
12508 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12509 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
12510 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[6];
12511 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[7];
12512 L4_MABX_B.SFunction1_o2_or = 1.0E-7 * ( ((real_T) CAN_Sgn.SignedSgn)
12513 );
12514 }
12515 }
12516 } else {
12517 /* set RX status to 0 because no new message has arrived */
12518 L4_MABX_B.SFunction1_o3_e = 0.0;
12519 }
12520 }
12521 }
12522
12523 /* End of Outputs for SubSystem: '<S607>/PosRapidUpdate_011' */
12524
12525 /* Outputs for Atomic SubSystem: '<S452>/If_Then_Else' */
12526
12527 /* Constant: '<S452>/useGPSSA00' incorporates:
12528 * Constant: '<S452>/useGPSSA0'
12529 */
12530 L4_MABX_If_Then_Else3(L4_MABX_B.LogicalOperator1_h, L4_MABX_P.useGPSSA00_Value,
12531 L4_MABX_P.useGPSSA0_Value, &L4_MABX_B.If_Then_Else);
12532
12533 /* End of Outputs for SubSystem: '<S452>/If_Then_Else' */
12534
12535 /* Outputs for Enabled SubSystem: '<S607>/PosRapidUpdate_1' incorporates:
12536 * EnablePort: '<S609>/Enable'
12537 */
12538 /* Constant: '<S434>/Constant' */
12539 if (L4_MABX_P.Constant_Value_m3 > 0.0) {
12540 /* S-Function (rti_commonblock): '<S609>/S-Function1' */
12541 /* This comment workarounds a code generation problem */
12542
12543 /* dSPACE RTICAN RX Message Block: "PosRapidUpdate_01" Id:167248129 */
12544 {
12545 UInt32 *CAN_Msg;
12546 static dsfloat time_old = 0.0;
12547
12548 /* Read status and timestamp info (previous message) */
12549 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80101].timestamp !=
12550 time_old) {
12551 /* ... save timestamp info for the calculation of the RX status
12552 during the consecutive sample hit*/
12553 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80101].
12554 timestamp;
12555
12556 /* ... set the processed flag to one */
12557 L4_MABX_B.SFunction1_o3_gm = 1.0;
12558 L4_MABX_B.SFunction1_o4_hc = (real_T)
12559 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80101].timestamp;
12560 L4_MABX_B.SFunction1_o5_ib = (real_T)
12561 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80101].deltatime;
12562 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80101].data;
12563
12564 /* Decode CAN message */
12565 {
12566 {
12567 rtican_Signal_t CAN_Sgn;
12568
12569 /* ...... "Latitude_" (0|32, standard signal, signed int, little endian) */
12570 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12571 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
12572 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[2];
12573 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[3];
12574 L4_MABX_B.SFunction1_o1_ck = 1.0E-7 * ( ((real_T) CAN_Sgn.SignedSgn)
12575 );
12576
12577 /* ...... "Longitude_" (32|32, standard signal, signed int, little endian) */
12578 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12579 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
12580 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[6];
12581 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[7];
12582 L4_MABX_B.SFunction1_o2_dn = 1.0E-7 * ( ((real_T) CAN_Sgn.SignedSgn)
12583 );
12584 }
12585 }
12586 } else {
12587 /* set RX status to 0 because no new message has arrived */
12588 L4_MABX_B.SFunction1_o3_gm = 0.0;
12589 }
12590 }
12591 }
12592
12593 /* End of Outputs for SubSystem: '<S607>/PosRapidUpdate_1' */
12594
12595 /* Switch: '<S607>/Switch' */
12596 if (L4_MABX_B.If_Then_Else.Switch) {
12597 L4_MABX_B.Latitude_ = L4_MABX_B.SFunction1_o1_on;
12598 L4_MABX_B.Longitude_ = L4_MABX_B.SFunction1_o2_or;
12599 } else {
12600 L4_MABX_B.Latitude_ = L4_MABX_B.SFunction1_o1_ck;
12601 L4_MABX_B.Longitude_ = L4_MABX_B.SFunction1_o2_dn;
12602 }
12603
12604 /* Outputs for Enabled SubSystem: '<S491>/CCVS1_00' incorporates:
12605 * EnablePort: '<S492>/Enable'
12606 */
12607 /* Constant: '<S415>/Constant' */
12608 if (L4_MABX_P.Constant_Value_jr) {
12609 /* S-Function (rti_commonblock): '<S492>/S-Function1' */
12610 /* This comment workarounds a code generation problem */
12611
12612 /* dSPACE RTICAN RX Message Block: "CCVS1_00" Id:218034432 */
12613 {
12614 UInt32 *CAN_Msg;
12615 static dsfloat time_old = 0.0;
12616
12617 /* Read status and timestamp info (previous message) */
12618 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCFEF100].timestamp !=
12619 time_old) {
12620 /* ... save timestamp info for the calculation of the RX status
12621 during the consecutive sample hit*/
12622 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCFEF100].
12623 timestamp;
12624
12625 /* ... set the processed flag to one */
12626 L4_MABX_B.SFunction1_o21_a = 1.0;
12627 L4_MABX_B.SFunction1_o22_f = (real_T)
12628 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCFEF100].timestamp;
12629 L4_MABX_B.SFunction1_o23_j = (real_T)
12630 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCFEF100].deltatime;
12631 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCFEF100].data;
12632
12633 /* Decode CAN message */
12634 {
12635 {
12636 rtican_Signal_t CAN_Sgn;
12637
12638 /* ...... "TwoSpeedAxleSwitch" (0|2, standard signal, unsigned int, little endian) */
12639 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12640 CAN_Sgn.UnsignedSgn &= 0x00000003;
12641 L4_MABX_B.SFunction1_o1_kc = ((real_T) CAN_Sgn.UnsignedSgn);
12642
12643 /* ...... "ParkingBrakeSwitch" (2|2, standard signal, unsigned int, little endian) */
12644 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12645 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
12646 CAN_Sgn.UnsignedSgn &= 0x00000003;
12647 L4_MABX_B.SFunction1_o2_cc = ((real_T) CAN_Sgn.UnsignedSgn);
12648
12649 /* ...... "CruiseCtrlPauseSwitch" (4|2, standard signal, unsigned int, little endian) */
12650 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12651 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
12652 CAN_Sgn.UnsignedSgn &= 0x00000003;
12653 L4_MABX_B.SFunction1_o3_bu = ((real_T) CAN_Sgn.UnsignedSgn);
12654
12655 /* ...... "ParkBrakeReleaseInhibitRq" (6|2, standard signal, unsigned int, little endian) */
12656 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12657 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
12658 CAN_Sgn.UnsignedSgn &= 0x00000003;
12659 L4_MABX_B.SFunction1_o4_ku = ((real_T) CAN_Sgn.UnsignedSgn);
12660
12661 /* ...... "WheelBasedVehicleSpeed" (8|16, standard signal, unsigned int, little endian) */
12662 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
12663 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
12664 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
12665 WheelBasedVehicleSpeed = 0.00390625 * ( ((real_T)
12666 CAN_Sgn.UnsignedSgn) );
12667
12668 /* ...... "CruiseCtrlActive" (24|2, standard signal, unsigned int, little endian) */
12669 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
12670 CAN_Sgn.UnsignedSgn &= 0x00000003;
12671 L4_MABX_B.SFunction1_o6_dq = ((real_T) CAN_Sgn.UnsignedSgn);
12672
12673 /* ...... "CruiseCtrlEnableSwitch" (26|2, standard signal, unsigned int, little endian) */
12674 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
12675 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
12676 CAN_Sgn.UnsignedSgn &= 0x00000003;
12677 L4_MABX_B.SFunction1_o7_kr = ((real_T) CAN_Sgn.UnsignedSgn);
12678
12679 /* ...... "BrakeSwitch" (28|2, standard signal, unsigned int, little endian) */
12680 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
12681 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
12682 CAN_Sgn.UnsignedSgn &= 0x00000003;
12683 BrakeSwitch = ((real_T) CAN_Sgn.UnsignedSgn);
12684
12685 /* ...... "ClutchSwitch" (30|2, standard signal, unsigned int, little endian) */
12686 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
12687 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
12688 CAN_Sgn.UnsignedSgn &= 0x00000003;
12689 L4_MABX_B.SFunction1_o9_a = ((real_T) CAN_Sgn.UnsignedSgn);
12690
12691 /* ...... "CruiseCtrlSetSwitch" (32|2, standard signal, unsigned int, little endian) */
12692 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12693 CAN_Sgn.UnsignedSgn &= 0x00000003;
12694 L4_MABX_B.SFunction1_o10_eg = ((real_T) CAN_Sgn.UnsignedSgn);
12695
12696 /* ...... "CruiseCtrlCoastSwitch" (34|2, standard signal, unsigned int, little endian) */
12697 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12698 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
12699 CAN_Sgn.UnsignedSgn &= 0x00000003;
12700 L4_MABX_B.SFunction1_o11_d = ((real_T) CAN_Sgn.UnsignedSgn);
12701
12702 /* ...... "CruiseCtrlResumeSwitch" (36|2, standard signal, unsigned int, little endian) */
12703 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12704 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
12705 CAN_Sgn.UnsignedSgn &= 0x00000003;
12706 L4_MABX_B.SFunction1_o12_d = ((real_T) CAN_Sgn.UnsignedSgn);
12707
12708 /* ...... "CruiseCtrlAccelerateSwitch" (38|2, standard signal, unsigned int, little endian) */
12709 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12710 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
12711 CAN_Sgn.UnsignedSgn &= 0x00000003;
12712 L4_MABX_B.SFunction1_o13_fk = ((real_T) CAN_Sgn.UnsignedSgn);
12713
12714 /* ...... "CruiseCtrlSetSpeed" (40|8, standard signal, unsigned int, little endian) */
12715 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
12716 CAN_Sgn.UnsignedSgn &= 0x000000FF;
12717 L4_MABX_B.SFunction1_o14_m = ((real_T) CAN_Sgn.UnsignedSgn);
12718
12719 /* ...... "PTOGovernorState" (48|5, standard signal, unsigned int, little endian) */
12720 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
12721 CAN_Sgn.UnsignedSgn &= 0x0000001F;
12722 L4_MABX_B.SFunction1_o15_p = ((real_T) CAN_Sgn.UnsignedSgn);
12723
12724 /* ...... "CruiseCtrlStates" (53|3, standard signal, unsigned int, little endian) */
12725 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
12726 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 5;
12727 CAN_Sgn.UnsignedSgn &= 0x00000007;
12728 L4_MABX_B.SFunction1_o16_c = ((real_T) CAN_Sgn.UnsignedSgn);
12729
12730 /* ...... "EngIdleIncrementSwitch" (56|2, standard signal, unsigned int, little endian) */
12731 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
12732 CAN_Sgn.UnsignedSgn &= 0x00000003;
12733 L4_MABX_B.SFunction1_o17_b = ((real_T) CAN_Sgn.UnsignedSgn);
12734
12735 /* ...... "EngIdleDecrementSwitch" (58|2, standard signal, unsigned int, little endian) */
12736 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
12737 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
12738 CAN_Sgn.UnsignedSgn &= 0x00000003;
12739 L4_MABX_B.SFunction1_o18_d = ((real_T) CAN_Sgn.UnsignedSgn);
12740
12741 /* ...... "EngTestModeSwitch" (60|2, standard signal, unsigned int, little endian) */
12742 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
12743 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
12744 CAN_Sgn.UnsignedSgn &= 0x00000003;
12745 L4_MABX_B.SFunction1_o19_c = ((real_T) CAN_Sgn.UnsignedSgn);
12746
12747 /* ...... "EngShutdownOverrideSwitch" (62|2, standard signal, unsigned int, little endian) */
12748 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
12749 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
12750 CAN_Sgn.UnsignedSgn &= 0x00000003;
12751 L4_MABX_B.SFunction1_o20_o = ((real_T) CAN_Sgn.UnsignedSgn);
12752 }
12753 }
12754 } else {
12755 /* set RX status to 0 because no new message has arrived */
12756 L4_MABX_B.SFunction1_o21_a = 0.0;
12757 }
12758 }
12759 }
12760
12761 /* End of Constant: '<S415>/Constant' */
12762 /* End of Outputs for SubSystem: '<S491>/CCVS1_00' */
12763
12764 /* Outputs for Enabled SubSystem: '<S495>/COGSOGRapidUpdate_00' incorporates:
12765 * EnablePort: '<S496>/Enable'
12766 */
12767 /* Constant: '<S417>/Constant' */
12768 if (L4_MABX_P.Constant_Value_px > 0.0) {
12769 /* S-Function (rti_commonblock): '<S496>/S-Function1' */
12770 /* This comment workarounds a code generation problem */
12771
12772 /* dSPACE RTICAN RX Message Block: "COGSOGRapidUpdate_00" Id:167248384 */
12773 {
12774 UInt32 *CAN_Msg;
12775 static dsfloat time_old = 0.0;
12776
12777 /* Read status and timestamp info (previous message) */
12778 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80200].timestamp !=
12779 time_old) {
12780 /* ... save timestamp info for the calculation of the RX status
12781 during the consecutive sample hit*/
12782 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80200].
12783 timestamp;
12784
12785 /* ... set the processed flag to one */
12786 L4_MABX_B.SFunction1_o5_p0 = 1.0;
12787 L4_MABX_B.SFunction1_o6_jb = (real_T)
12788 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80200].timestamp;
12789 L4_MABX_B.SFunction1_o7_k = (real_T)
12790 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80200].deltatime;
12791 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80200].data;
12792
12793 /* Decode CAN message */
12794 {
12795 {
12796 rtican_Signal_t CAN_Sgn;
12797
12798 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
12799 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12800 CAN_Sgn.UnsignedSgn &= 0x000000FF;
12801 L4_MABX_B.SFunction1_o1_nr = ((real_T) CAN_Sgn.UnsignedSgn);
12802
12803 /* ...... "COGReference" (8|2, standard signal, unsigned int, little endian) */
12804 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
12805 CAN_Sgn.UnsignedSgn &= 0x00000003;
12806 L4_MABX_B.SFunction1_o2_j5 = ((real_T) CAN_Sgn.UnsignedSgn);
12807
12808 /* ...... "CourseOverGround" (16|16, standard signal, unsigned int, little endian) */
12809 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
12810 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
12811 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
12812 L4_MABX_B.SFunction1_o3_no = 0.0001 * ( ((real_T)
12813 CAN_Sgn.UnsignedSgn) );
12814
12815 /* ...... "SpeedOverGround" (32|16, standard signal, unsigned int, little endian) */
12816 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12817 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
12818 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
12819 L4_MABX_B.SFunction1_o4_dm = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
12820 );
12821 }
12822 }
12823 } else {
12824 /* set RX status to 0 because no new message has arrived */
12825 L4_MABX_B.SFunction1_o5_p0 = 0.0;
12826 }
12827 }
12828 }
12829
12830 /* End of Outputs for SubSystem: '<S495>/COGSOGRapidUpdate_00' */
12831
12832 /* DataTypeConversion: '<S495>/Data Type Conversion8' */
12833 L4_MABX_B.RX_status_g = (L4_MABX_B.SFunction1_o5_p0 != 0.0);
12834
12835 /* Outputs for Enabled SubSystem: '<S495>/COGSOGRapidUpdate_1' incorporates:
12836 * EnablePort: '<S497>/Enable'
12837 */
12838 /* Constant: '<S417>/Constant' */
12839 if (L4_MABX_P.Constant_Value_px > 0.0) {
12840 /* S-Function (rti_commonblock): '<S497>/S-Function1' */
12841 /* This comment workarounds a code generation problem */
12842
12843 /* dSPACE RTICAN RX Message Block: "COGSOGRapidUpdate_00" Id:167248385 */
12844 {
12845 UInt32 *CAN_Msg;
12846 static dsfloat time_old = 0.0;
12847
12848 /* Read status and timestamp info (previous message) */
12849 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80201].timestamp !=
12850 time_old) {
12851 /* ... save timestamp info for the calculation of the RX status
12852 during the consecutive sample hit*/
12853 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80201].
12854 timestamp;
12855
12856 /* ... set the processed flag to one */
12857 L4_MABX_B.SFunction1_o5_i2 = 1.0;
12858 L4_MABX_B.SFunction1_o6_pz = (real_T)
12859 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80201].timestamp;
12860 L4_MABX_B.SFunction1_o7_dq = (real_T)
12861 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80201].deltatime;
12862 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80201].data;
12863
12864 /* Decode CAN message */
12865 {
12866 {
12867 rtican_Signal_t CAN_Sgn;
12868
12869 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
12870 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12871 CAN_Sgn.UnsignedSgn &= 0x000000FF;
12872 L4_MABX_B.SFunction1_o1_az = ((real_T) CAN_Sgn.UnsignedSgn);
12873
12874 /* ...... "COGReference" (8|2, standard signal, unsigned int, little endian) */
12875 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
12876 CAN_Sgn.UnsignedSgn &= 0x00000003;
12877 L4_MABX_B.SFunction1_o2_ftn = ((real_T) CAN_Sgn.UnsignedSgn);
12878
12879 /* ...... "CourseOverGround" (16|16, standard signal, unsigned int, little endian) */
12880 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
12881 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
12882 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
12883 L4_MABX_B.SFunction1_o3_gj = 0.0001 * ( ((real_T)
12884 CAN_Sgn.UnsignedSgn) );
12885
12886 /* ...... "SpeedOverGround" (32|16, standard signal, unsigned int, little endian) */
12887 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12888 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
12889 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
12890 L4_MABX_B.SFunction1_o4_jh = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
12891 );
12892 }
12893 }
12894 } else {
12895 /* set RX status to 0 because no new message has arrived */
12896 L4_MABX_B.SFunction1_o5_i2 = 0.0;
12897 }
12898 }
12899 }
12900
12901 /* End of Outputs for SubSystem: '<S495>/COGSOGRapidUpdate_1' */
12902
12903 /* Switch: '<S495>/Switch' */
12904 if (L4_MABX_B.RX_status_g) {
12905 L4_MABX_B.SID = L4_MABX_B.SFunction1_o1_nr;
12906 L4_MABX_B.COGReference = L4_MABX_B.SFunction1_o2_j5;
12907 L4_MABX_B.CourseOverGround = L4_MABX_B.SFunction1_o3_no;
12908 L4_MABX_B.SpeedOverGround = L4_MABX_B.SFunction1_o4_dm;
12909 } else {
12910 L4_MABX_B.SID = L4_MABX_B.SFunction1_o1_az;
12911 L4_MABX_B.COGReference = L4_MABX_B.SFunction1_o2_ftn;
12912 L4_MABX_B.CourseOverGround = L4_MABX_B.SFunction1_o3_gj;
12913 L4_MABX_B.SpeedOverGround = L4_MABX_B.SFunction1_o4_jh;
12914 }
12915
12916 /* Outputs for Atomic SubSystem: '<S804>/CAN_TX_100ms' */
12917
12918 /* RateTransition: '<S841>/TmpRTBAtHiddenBuf_InsertedFor_Rolling_15_counter_at_inport_0Inport1' */
12919 if (L4_MABX_M->Timing.RateInteraction.TID0_3 == 1) {
12920 L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_R = AutonomousOutputEnabled;
12921
12922 /* RateTransition: '<S859>/TmpRTBAtOperatorInport1' */
12923 L4_MABX_B.TmpRTBAtOperatorInport1 = AutonomousOutputEnabled;
12924
12925 /* RateTransition: '<S862>/TmpRTBAtOperatorInport1' */
12926 L4_MABX_B.TmpRTBAtOperatorInport1_j = AutonomousOutputEnabled;
12927
12928 /* RateTransition: '<S853>/TmpRTBAtOperatorInport1' */
12929 L4_MABX_B.TmpRTBAtOperatorInport1_e = AutonomousOutputEnabled;
12930
12931 /* RateTransition: '<S854>/TmpRTBAtOperatorInport1' */
12932 L4_MABX_B.TmpRTBAtOperatorInport1_p = AutonomousOutputEnabled;
12933
12934 /* RateTransition: '<S860>/TmpRTBAtOperatorInport1' */
12935 L4_MABX_B.TmpRTBAtOperatorInport1_f = AutonomousOutputEnabled;
12936
12937 /* RateTransition: '<S861>/TmpRTBAtOperatorInport1' */
12938 L4_MABX_B.TmpRTBAtOperatorInport1_i = AutonomousOutputEnabled;
12939 L4_MABX_B.Latitude__m = L4_MABX_B.Latitude_;
12940 L4_MABX_B.Longitude__d = L4_MABX_B.Longitude_;
12941 L4_MABX_B.TwoSpeedAxleSwitch_g = L4_MABX_B.SFunction1_o1_kc;
12942 L4_MABX_B.ParkingBrakeSwitch_b = L4_MABX_B.SFunction1_o2_cc;
12943 L4_MABX_B.CruiseCtrlPauseSwitch_a = L4_MABX_B.SFunction1_o3_bu;
12944 L4_MABX_B.ParkBrakeReleaseInhibitRq_i = L4_MABX_B.SFunction1_o4_ku;
12945 L4_MABX_B.WheelBasedVehicleSpeed_j0 = WheelBasedVehicleSpeed;
12946 L4_MABX_B.CruiseCtrlActive_f = L4_MABX_B.SFunction1_o6_dq;
12947 L4_MABX_B.CruiseCtrlEnableSwitch_c0 = L4_MABX_B.SFunction1_o7_kr;
12948 L4_MABX_B.BrakeSwitch_du = BrakeSwitch;
12949 L4_MABX_B.ClutchSwitch_j = L4_MABX_B.SFunction1_o9_a;
12950 L4_MABX_B.CruiseCtrlSetSwitch_b = L4_MABX_B.SFunction1_o10_eg;
12951 L4_MABX_B.CruiseCtrlCoastSwitch_c = L4_MABX_B.SFunction1_o11_d;
12952 L4_MABX_B.CruiseCtrlResumeSwitch_b = L4_MABX_B.SFunction1_o12_d;
12953 L4_MABX_B.CruiseCtrlAccelerateSwitch_n = L4_MABX_B.SFunction1_o13_fk;
12954 L4_MABX_B.CruiseCtrlSetSpeed_g = L4_MABX_B.SFunction1_o14_m;
12955 L4_MABX_B.PTOGovernorState_p = L4_MABX_B.SFunction1_o15_p;
12956 L4_MABX_B.CruiseCtrlStates_i = L4_MABX_B.SFunction1_o16_c;
12957 L4_MABX_B.EngIdleIncrementSwitch_p = L4_MABX_B.SFunction1_o17_b;
12958 L4_MABX_B.EngIdleDecrementSwitch_c = L4_MABX_B.SFunction1_o18_d;
12959 L4_MABX_B.EngTestModeSwitch_g = L4_MABX_B.SFunction1_o19_c;
12960 L4_MABX_B.EngShutdownOverrideSwitch_c = L4_MABX_B.SFunction1_o20_o;
12961 L4_MABX_B.TwoSpeedAxleSwitch_g4 = L4_MABX_B.SFunction1_o1_kc;
12962 L4_MABX_B.ParkingBrakeSwitch_bg = L4_MABX_B.SFunction1_o2_cc;
12963 L4_MABX_B.CruiseCtrlPauseSwitch_a4 = L4_MABX_B.SFunction1_o3_bu;
12964 L4_MABX_B.ParkBrakeReleaseInhibitRq_i1 = L4_MABX_B.SFunction1_o4_ku;
12965 L4_MABX_B.WheelBasedVehicleSpeed_j05 = WheelBasedVehicleSpeed;
12966 L4_MABX_B.CruiseCtrlActive_fn = L4_MABX_B.SFunction1_o6_dq;
12967 L4_MABX_B.CruiseCtrlEnableSwitch_c0n = L4_MABX_B.SFunction1_o7_kr;
12968 L4_MABX_B.BrakeSwitch_dus = BrakeSwitch;
12969 L4_MABX_B.ClutchSwitch_j0 = L4_MABX_B.SFunction1_o9_a;
12970 L4_MABX_B.CruiseCtrlSetSwitch_bq = L4_MABX_B.SFunction1_o10_eg;
12971 L4_MABX_B.CruiseCtrlCoastSwitch_ce = L4_MABX_B.SFunction1_o11_d;
12972 L4_MABX_B.CruiseCtrlResumeSwitch_bx = L4_MABX_B.SFunction1_o12_d;
12973 L4_MABX_B.CruiseCtrlAccelerateSwitch_nq = L4_MABX_B.SFunction1_o13_fk;
12974 L4_MABX_B.CruiseCtrlSetSpeed_gy = L4_MABX_B.SFunction1_o14_m;
12975 L4_MABX_B.PTOGovernorState_pj = L4_MABX_B.SFunction1_o15_p;
12976 L4_MABX_B.CruiseCtrlStates_iz = L4_MABX_B.SFunction1_o16_c;
12977 L4_MABX_B.EngIdleIncrementSwitch_pl = L4_MABX_B.SFunction1_o17_b;
12978 L4_MABX_B.EngIdleDecrementSwitch_cg = L4_MABX_B.SFunction1_o18_d;
12979 L4_MABX_B.EngTestModeSwitch_gu = L4_MABX_B.SFunction1_o19_c;
12980 L4_MABX_B.EngShutdownOverrideSwitch_ca = L4_MABX_B.SFunction1_o20_o;
12981 L4_MABX_B.SID_k = L4_MABX_B.SID;
12982 L4_MABX_B.COGReference_b = L4_MABX_B.COGReference;
12983 L4_MABX_B.CourseOverGround_c = L4_MABX_B.CourseOverGround;
12984 L4_MABX_B.SpeedOverGround_j = L4_MABX_B.SpeedOverGround;
12985 L4_MABX_B.ASREngCtrlActive = L4_MABX_B.SFunction1_o1_bs;
12986 L4_MABX_B.ASRBrakeCtrlActive = L4_MABX_B.SFunction1_o2_m1;
12987 L4_MABX_B.AntiLockBrakingActive = L4_MABX_B.SFunction1_o3_jx;
12988 L4_MABX_B.EBSBrakeSwitch_b = L4_MABX_B.SFunction1_o4_kq;
12989 L4_MABX_B.BrakePedalPos = L4_MABX_B.SFunction1_o5_cn;
12990 L4_MABX_B.ABSOffroadSwitch = L4_MABX_B.SFunction1_o6_m4;
12991 L4_MABX_B.ASROffroadSwitch = L4_MABX_B.SFunction1_o7_ix;
12992 L4_MABX_B.ASRHillHolderSwitch = L4_MABX_B.SFunction1_o8_jo;
12993 L4_MABX_B.TractionCtrlOverrideSwitch = L4_MABX_B.SFunction1_o9_h;
12994 L4_MABX_B.AccelInterlockSwitch = L4_MABX_B.SFunction1_o10_k;
12995 L4_MABX_B.EngDerateSwitch = L4_MABX_B.SFunction1_o11_c;
12996 L4_MABX_B.EngAuxShutdownSwitch = L4_MABX_B.SFunction1_o12_o;
12997 L4_MABX_B.RemoteAccelEnableSwitch = L4_MABX_B.SFunction1_o13_f;
12998 L4_MABX_B.EngRetarderSelection = L4_MABX_B.SFunction1_o14_o;
12999 L4_MABX_B.ABSFullyOperational = L4_MABX_B.SFunction1_o15_g;
13000 L4_MABX_B.EBSRedWarningSignal = L4_MABX_B.SFunction1_o16_j;
13001 L4_MABX_B.ABS_EBSAmberWarningSignal = L4_MABX_B.SFunction1_o17_m;
13002 L4_MABX_B.ATC_ASRInformationSignal = L4_MABX_B.SFunction1_o18_o;
13003 L4_MABX_B.SrcAddrssOfCtrllngDvcFrBrkCntrl = L4_MABX_B.SFunction1_o19_f;
13004 L4_MABX_B.HaltBrakeSwitch = L4_MABX_B.SFunction1_o20_p;
13005 L4_MABX_B.TrailerABSStatus = L4_MABX_B.SFunction1_o21_o;
13006 L4_MABX_B.TrctrMntdTrilerABSWarningSignal = L4_MABX_B.SFunction1_o22_d;
13007 }
13008
13009 /* End of Outputs for SubSystem: '<S804>/CAN_TX_100ms' */
13010
13011 /* Outputs for Atomic SubSystem: '<S804>/CAN_TX_10ms' */
13012
13013 /* DataTypeConversion: '<S906>/Data Type Conversion4' */
13014 L4_MABX_B.DataTypeConversion4_n = L4_MABX_B.Diff;
13015
13016 /* DataTypeConversion: '<S895>/Data Type Conversion' incorporates:
13017 * Constant: '<S809>/CANT_ACCS_E4_CHANNEL_APV'
13018 */
13019 L4_MABX_B.DataTypeConversion_ax = (uint8_T)
13020 L4_MABX_P.CANT_ACCS_E4_CHANNEL_APV_Value;
13021
13022 /* S-Function (sfix_bitop): '<S903>/Operator' */
13023 L4_MABX_B.Operator_hz = (uint8_T)(L4_MABX_B.DataTypeConversion_ax &
13024 L4_MABX_P.Operator_BitMask_pn);
13025
13026 /* DataTypeConversion: '<S903>/DataType' */
13027 L4_MABX_B.DataType_k = L4_MABX_B.Operator_hz;
13028
13029 /* ArithShift: '<S895>/Shift_Arithmetic 2' */
13030 L4_MABX_B.Shift_Arithmetic2_e = ldexp(L4_MABX_B.DataType_k, (-3));
13031
13032 /* DataTypeConversion: '<S895>/Data Type Conversion5' */
13033 L4_MABX_B.DataTypeConversion5_mg = (L4_MABX_B.Shift_Arithmetic2_e != 0.0);
13034
13035 /* Outputs for Enabled SubSystem: '<S906>/ACCS' incorporates:
13036 * EnablePort: '<S907>/Enable'
13037 */
13038 if (L4_MABX_B.DataTypeConversion5_mg) {
13039 /* S-Function (rti_commonblock): '<S907>/S-Function1' */
13040 /* This comment workarounds a code generation problem */
13041
13042 /* dSPACE RTICAN TX Message Block: "ACCS" Id:418393572 */
13043 {
13044 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
13045
13046 Float32 delayTime = 0.0;
13047
13048 /* ... Read status and timestamp info (previous message) */
13049 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]);
13050
13051 /* Convert timestamp */
13052 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->processed) {
13053 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->timestamp =
13054 rtk_dsts_time_to_simtime_convert
13055 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->timestamp);
13056 }
13057
13058 /* Messages with timestamp zero have been received in pause/stop state
13059 and must not be handled.
13060 */
13061 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->timestamp > 0.0) {
13062 L4_MABX_B.SFunction1_o1_aa = (real_T)
13063 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->processed;
13064 L4_MABX_B.SFunction1_o2_ft = (real_T)
13065 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->timestamp;
13066 L4_MABX_B.SFunction1_o3_o = (real_T)
13067 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->deltatime;
13068 L4_MABX_B.SFunction1_o4_b = (real_T)
13069 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->delaytime;
13070 }
13071
13072 /* ... Encode Simulink signals of TX and RM blocks*/
13073 {
13074 rtican_Signal_t CAN_Sgn;
13075
13076 /* ...... "LongitudinalAccelerationExRange" (16|16, standard signal, unsigned int, little endian) */
13077 /* Add or substract 0.5 in order to round to nearest integer */
13078 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion4_n -
13079 ( -320 ) ) / 0.01 + 0.5);
13080 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
13081 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
13082 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte1;
13083 }
13084
13085 /* mask unused bits with '1' */
13086 CAN_Msg[0] |= 0xFF;
13087 CAN_Msg[1] |= 0xFF;
13088 CAN_Msg[4] |= 0xFF;
13089 CAN_Msg[5] |= 0xFF;
13090 CAN_Msg[6] |= 0xFF;
13091 CAN_Msg[7] |= 0xFF;
13092
13093 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
13094 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4], 8,
13095 &(CAN_Msg[0]), delayTime);
13096 }
13097 }
13098
13099 /* End of Outputs for SubSystem: '<S906>/ACCS' */
13100
13101 /* S-Function (sfix_bitop): '<S900>/Operator' */
13102 L4_MABX_B.Operator_f1 = (uint8_T)(L4_MABX_B.DataTypeConversion_ax &
13103 L4_MABX_P.Operator_BitMask_n);
13104
13105 /* DataTypeConversion: '<S900>/DataType' */
13106 L4_MABX_B.DataType_e2 = L4_MABX_B.Operator_f1;
13107
13108 /* S-Function (sfix_bitop): '<S901>/Operator' */
13109 L4_MABX_B.Operator_co = (uint8_T)(L4_MABX_B.DataTypeConversion_ax &
13110 L4_MABX_P.Operator_BitMask_jy);
13111
13112 /* DataTypeConversion: '<S901>/DataType' */
13113 L4_MABX_B.DataType_c = L4_MABX_B.Operator_co;
13114
13115 /* S-Function (sfix_bitop): '<S902>/Operator' */
13116 L4_MABX_B.Operator_dj = (uint8_T)(L4_MABX_B.DataTypeConversion_ax &
13117 L4_MABX_P.Operator_BitMask_gu);
13118
13119 /* DataTypeConversion: '<S902>/DataType' */
13120 L4_MABX_B.DataType_md = L4_MABX_B.Operator_dj;
13121
13122 /* S-Function (sfix_bitop): '<S904>/Operator' */
13123 L4_MABX_B.Operator_kz = (uint8_T)(L4_MABX_B.DataTypeConversion_ax &
13124 L4_MABX_P.Operator_BitMask_dj);
13125
13126 /* DataTypeConversion: '<S904>/DataType' */
13127 L4_MABX_B.DataType_d = L4_MABX_B.Operator_kz;
13128
13129 /* S-Function (sfix_bitop): '<S905>/Operator' */
13130 L4_MABX_B.Operator_b3 = (uint8_T)(L4_MABX_B.DataTypeConversion_ax &
13131 L4_MABX_P.Operator_BitMask_bu);
13132
13133 /* DataTypeConversion: '<S905>/DataType' */
13134 L4_MABX_B.DataType_i = L4_MABX_B.Operator_b3;
13135
13136 /* DataTypeConversion: '<S895>/Data Type Conversion2' */
13137 L4_MABX_B.DataTypeConversion2_ke = (L4_MABX_B.DataType_e2 != 0);
13138
13139 /* ArithShift: '<S895>/Shift_Arithmetic ' */
13140 L4_MABX_B.Shift_Arithmetic_j = ldexp(L4_MABX_B.DataType_c, (-1));
13141
13142 /* DataTypeConversion: '<S895>/Data Type Conversion3' */
13143 L4_MABX_B.DataTypeConversion3_ko = (L4_MABX_B.Shift_Arithmetic_j != 0.0);
13144
13145 /* ArithShift: '<S895>/Shift_Arithmetic 1' */
13146 L4_MABX_B.Shift_Arithmetic1_b = ldexp(L4_MABX_B.DataType_md, (-2));
13147
13148 /* DataTypeConversion: '<S895>/Data Type Conversion4' */
13149 L4_MABX_B.DataTypeConversion4_p = (L4_MABX_B.Shift_Arithmetic1_b != 0.0);
13150
13151 /* ArithShift: '<S895>/Shift_Arithmetic 3' */
13152 L4_MABX_B.Shift_Arithmetic3_p = ldexp(L4_MABX_B.DataType_d, (-4));
13153
13154 /* DataTypeConversion: '<S895>/Data Type Conversion6' */
13155 L4_MABX_B.DataTypeConversion6_oh = (L4_MABX_B.Shift_Arithmetic3_p != 0.0);
13156
13157 /* ArithShift: '<S895>/Shift_Arithmetic 4' */
13158 L4_MABX_B.Shift_Arithmetic4_o = ldexp(L4_MABX_B.DataType_i, (-5));
13159
13160 /* DataTypeConversion: '<S895>/Data Type Conversion7' */
13161 L4_MABX_B.DataTypeConversion7_jt = (L4_MABX_B.Shift_Arithmetic4_o != 0.0);
13162
13163 /* DataTypeConversion: '<S914>/Data Type Conversion1' */
13164 L4_MABX_B.DataTypeConversion1_gt = L4_MABX_B.SFunction1_o2_pk;
13165
13166 /* DataTypeConversion: '<S914>/Data Type Conversion2' */
13167 L4_MABX_B.DataTypeConversion2_dq = L4_MABX_B.SFunction1_o3_el;
13168
13169 /* DataTypeConversion: '<S914>/Data Type Conversion3' */
13170 L4_MABX_B.DataTypeConversion3_p = L4_MABX_B.SFunction1_o4_e1;
13171
13172 /* DataTypeConversion: '<S914>/Data Type Conversion4' */
13173 L4_MABX_B.DataTypeConversion4_g = L4_MABX_B.SFunction1_o1_kp;
13174
13175 /* DataTypeConversion: '<S914>/Data Type Conversion5' */
13176 L4_MABX_B.DataTypeConversion5_e = L4_MABX_B.SFunction1_o5_aw;
13177
13178 /* DataTypeConversion: '<S914>/Data Type Conversion6' */
13179 L4_MABX_B.DataTypeConversion6_c = L4_MABX_B.SFunction1_o6_j;
13180
13181 /* DataTypeConversion: '<S914>/Data Type Conversion7' */
13182 L4_MABX_B.DataTypeConversion7_d3 = L4_MABX_B.SFunction1_o7_a0;
13183
13184 /* DataTypeConversion: '<S914>/Data Type Conversion8' */
13185 L4_MABX_B.DataTypeConversion8_o = L4_MABX_B.SFunction1_o8_e;
13186
13187 /* DataTypeConversion: '<S896>/Data Type Conversion' incorporates:
13188 * Constant: '<S809>/CANT_EEC1_00_CHANNEL_APV'
13189 */
13190 L4_MABX_B.DataTypeConversion_ly = (uint8_T)
13191 L4_MABX_P.CANT_EEC1_00_CHANNEL_APV_Value;
13192
13193 /* S-Function (sfix_bitop): '<S911>/Operator' */
13194 L4_MABX_B.Operator_i1 = (uint8_T)(L4_MABX_B.DataTypeConversion_ly &
13195 L4_MABX_P.Operator_BitMask_an);
13196
13197 /* DataTypeConversion: '<S911>/DataType' */
13198 L4_MABX_B.DataType_l = L4_MABX_B.Operator_i1;
13199
13200 /* ArithShift: '<S896>/Shift_Arithmetic 2' */
13201 L4_MABX_B.Shift_Arithmetic2_k = ldexp(L4_MABX_B.DataType_l, (-3));
13202
13203 /* DataTypeConversion: '<S896>/Data Type Conversion5' */
13204 L4_MABX_B.DataTypeConversion5_gx = (L4_MABX_B.Shift_Arithmetic2_k != 0.0);
13205
13206 /* Outputs for Enabled SubSystem: '<S914>/EEC1_00' incorporates:
13207 * EnablePort: '<S916>/Enable'
13208 */
13209 if (L4_MABX_B.DataTypeConversion5_gx) {
13210 /* S-Function (rti_commonblock): '<S916>/S-Function1' */
13211 /* This comment workarounds a code generation problem */
13212
13213 /* dSPACE RTICAN TX Message Block: "EEC1_00" Id:217056256 */
13214 {
13215 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
13216
13217 Float32 delayTime = 0.0;
13218
13219 /* ... Read status and timestamp info (previous message) */
13220 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]);
13221
13222 /* Convert timestamp */
13223 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->processed) {
13224 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->timestamp =
13225 rtk_dsts_time_to_simtime_convert
13226 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->timestamp);
13227 }
13228
13229 /* Messages with timestamp zero have been received in pause/stop state
13230 and must not be handled.
13231 */
13232 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->timestamp > 0.0) {
13233 L4_MABX_B.SFunction1_o1_k5 = (real_T)
13234 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->processed;
13235 L4_MABX_B.SFunction1_o2_e = (real_T)
13236 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->timestamp;
13237 L4_MABX_B.SFunction1_o3_lo = (real_T)
13238 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->deltatime;
13239 L4_MABX_B.SFunction1_o4_h = (real_T)
13240 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->delaytime;
13241 }
13242
13243 /* ... Encode Simulink signals of TX and RM blocks*/
13244 {
13245 rtican_Signal_t CAN_Sgn;
13246
13247 /* ...... "SPN899_EngineTorqueMode" (0|4, standard signal, unsigned int, little endian) */
13248 /* Add or substract 0.5 in order to round to nearest integer */
13249 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion4_g ) +
13250 0.5);
13251 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13252 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
13253
13254 /* ...... "SPN4154_ActEngPercTorqueFrac" (4|4, standard signal, unsigned int, little endian) */
13255 /* Add or substract 0.5 in order to round to nearest integer */
13256 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_gt - ( 0
13257 ) ) / 0.125 + 0.5);
13258 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13259 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
13260 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
13261
13262 /* ...... "SPN512_DrvrDemEngPercTrq" (8|8, standard signal, unsigned int, little endian) */
13263 /* Add or substract 0.5 in order to round to nearest integer */
13264 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion2_dq -
13265 ( -125 ) + 0.5);
13266 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13267 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
13268
13269 /* ...... "SPN513_ActEngPercTorque" (16|8, standard signal, unsigned int, little endian) */
13270 /* Add or substract 0.5 in order to round to nearest integer */
13271 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion3_p - ( -125
13272 ) + 0.5);
13273 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13274 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
13275
13276 /* ...... "SPN190_EngineSpeed" (24|16, standard signal, unsigned int, little endian) */
13277 /* Add or substract 0.5 in order to round to nearest integer */
13278 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion5_e - ( 0 )
13279 ) / 0.125 + 0.5);
13280 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
13281 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
13282 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte1;
13283
13284 /* ...... "SPN1483_SAOfCtrlDevForEngineCtrl" (40|8, standard signal, unsigned int, little endian) */
13285 /* Add or substract 0.5 in order to round to nearest integer */
13286 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion6_c ) +
13287 0.5);
13288 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13289 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
13290
13291 /* ...... "SPN1675_EngineStarterMode" (48|4, standard signal, unsigned int, little endian) */
13292 /* Add or substract 0.5 in order to round to nearest integer */
13293 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion7_d3 ) +
13294 0.5);
13295 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13296 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
13297
13298 /* ...... "SPN2432_EngDemPercTrq" (56|8, standard signal, unsigned int, little endian) */
13299 /* Add or substract 0.5 in order to round to nearest integer */
13300 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion8_o - ( -125
13301 ) + 0.5);
13302 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13303 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
13304 }
13305
13306 /* mask unused bits with '1' */
13307 CAN_Msg[6] |= 0xF0;
13308
13309 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
13310 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400], 8,
13311 &(CAN_Msg[0]), delayTime);
13312 }
13313 }
13314
13315 /* End of Outputs for SubSystem: '<S914>/EEC1_00' */
13316
13317 /* DataTypeConversion: '<S915>/Data Type Conversion1' */
13318 L4_MABX_B.DataTypeConversion1_k2 = L4_MABX_B.SFunction1_o2_pk;
13319
13320 /* DataTypeConversion: '<S915>/Data Type Conversion2' */
13321 L4_MABX_B.DataTypeConversion2_k = L4_MABX_B.SFunction1_o3_el;
13322
13323 /* DataTypeConversion: '<S915>/Data Type Conversion3' */
13324 L4_MABX_B.DataTypeConversion3_h = L4_MABX_B.SFunction1_o4_e1;
13325
13326 /* DataTypeConversion: '<S915>/Data Type Conversion4' */
13327 L4_MABX_B.DataTypeConversion4_m = L4_MABX_B.SFunction1_o1_kp;
13328
13329 /* DataTypeConversion: '<S915>/Data Type Conversion5' */
13330 L4_MABX_B.DataTypeConversion5_l = L4_MABX_B.SFunction1_o5_aw;
13331
13332 /* DataTypeConversion: '<S915>/Data Type Conversion6' */
13333 L4_MABX_B.DataTypeConversion6_o = L4_MABX_B.SFunction1_o6_j;
13334
13335 /* DataTypeConversion: '<S915>/Data Type Conversion7' */
13336 L4_MABX_B.DataTypeConversion7_e = L4_MABX_B.SFunction1_o7_a0;
13337
13338 /* DataTypeConversion: '<S915>/Data Type Conversion8' */
13339 L4_MABX_B.DataTypeConversion8_g = L4_MABX_B.SFunction1_o8_e;
13340
13341 /* S-Function (sfix_bitop): '<S912>/Operator' */
13342 L4_MABX_B.Operator_e2 = (uint8_T)(L4_MABX_B.DataTypeConversion_ly &
13343 L4_MABX_P.Operator_BitMask_k3);
13344
13345 /* DataTypeConversion: '<S912>/DataType' */
13346 L4_MABX_B.DataType_f = L4_MABX_B.Operator_e2;
13347
13348 /* ArithShift: '<S896>/Shift_Arithmetic 3' */
13349 L4_MABX_B.Shift_Arithmetic3_m = ldexp(L4_MABX_B.DataType_f, (-4));
13350
13351 /* DataTypeConversion: '<S896>/Data Type Conversion6' */
13352 L4_MABX_B.DataTypeConversion6_g0t = (L4_MABX_B.Shift_Arithmetic3_m != 0.0);
13353
13354 /* Outputs for Enabled SubSystem: '<S915>/EEC1_00' incorporates:
13355 * EnablePort: '<S917>/Enable'
13356 */
13357 if (L4_MABX_B.DataTypeConversion6_g0t) {
13358 /* S-Function (rti_commonblock): '<S917>/S-Function1' */
13359 /* This comment workarounds a code generation problem */
13360
13361 /* dSPACE RTICAN TX Message Block: "EEC1_00" Id:217056256 */
13362 {
13363 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
13364
13365 Float32 delayTime = 0.0;
13366
13367 /* ... Read status and timestamp info (previous message) */
13368 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]);
13369
13370 /* Convert timestamp */
13371 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->processed) {
13372 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->timestamp =
13373 rtk_dsts_time_to_simtime_convert
13374 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->timestamp);
13375 }
13376
13377 /* Messages with timestamp zero have been received in pause/stop state
13378 and must not be handled.
13379 */
13380 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->timestamp > 0.0) {
13381 L4_MABX_B.SFunction1_o1_ko = (real_T)
13382 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->processed;
13383 L4_MABX_B.SFunction1_o2_cr = (real_T)
13384 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->timestamp;
13385 L4_MABX_B.SFunction1_o3_c = (real_T)
13386 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->deltatime;
13387 L4_MABX_B.SFunction1_o4_nc = (real_T)
13388 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->delaytime;
13389 }
13390
13391 /* ... Encode Simulink signals of TX and RM blocks*/
13392 {
13393 rtican_Signal_t CAN_Sgn;
13394
13395 /* ...... "SPN899_EngineTorqueMode" (0|4, standard signal, unsigned int, little endian) */
13396 /* Add or substract 0.5 in order to round to nearest integer */
13397 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion4_m ) +
13398 0.5);
13399 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13400 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
13401
13402 /* ...... "SPN4154_ActEngPercTorqueFrac" (4|4, standard signal, unsigned int, little endian) */
13403 /* Add or substract 0.5 in order to round to nearest integer */
13404 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_k2 - ( 0
13405 ) ) / 0.125 + 0.5);
13406 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13407 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
13408 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
13409
13410 /* ...... "SPN512_DrvrDemEngPercTrq" (8|8, standard signal, unsigned int, little endian) */
13411 /* Add or substract 0.5 in order to round to nearest integer */
13412 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion2_k - ( -125
13413 ) + 0.5);
13414 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13415 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
13416
13417 /* ...... "SPN513_ActEngPercTorque" (16|8, standard signal, unsigned int, little endian) */
13418 /* Add or substract 0.5 in order to round to nearest integer */
13419 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion3_h - ( -125
13420 ) + 0.5);
13421 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13422 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
13423
13424 /* ...... "SPN190_EngineSpeed" (24|16, standard signal, unsigned int, little endian) */
13425 /* Add or substract 0.5 in order to round to nearest integer */
13426 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion5_l - ( 0 )
13427 ) / 0.125 + 0.5);
13428 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
13429 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
13430 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte1;
13431
13432 /* ...... "SPN1483_SAOfCtrlDevForEngineCtrl" (40|8, standard signal, unsigned int, little endian) */
13433 /* Add or substract 0.5 in order to round to nearest integer */
13434 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion6_o ) +
13435 0.5);
13436 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13437 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
13438
13439 /* ...... "SPN1675_EngineStarterMode" (48|4, standard signal, unsigned int, little endian) */
13440 /* Add or substract 0.5 in order to round to nearest integer */
13441 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion7_e ) +
13442 0.5);
13443 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13444 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
13445
13446 /* ...... "SPN2432_EngDemPercTrq" (56|8, standard signal, unsigned int, little endian) */
13447 /* Add or substract 0.5 in order to round to nearest integer */
13448 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion8_g - ( -125
13449 ) + 0.5);
13450 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13451 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
13452 }
13453
13454 /* mask unused bits with '1' */
13455 CAN_Msg[6] |= 0xF0;
13456
13457 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
13458 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400], 8,
13459 &(CAN_Msg[0]), delayTime);
13460 }
13461 }
13462
13463 /* End of Outputs for SubSystem: '<S915>/EEC1_00' */
13464
13465 /* S-Function (sfix_bitop): '<S908>/Operator' */
13466 L4_MABX_B.Operator_cw = (uint8_T)(L4_MABX_B.DataTypeConversion_ly &
13467 L4_MABX_P.Operator_BitMask_cg);
13468
13469 /* DataTypeConversion: '<S908>/DataType' */
13470 L4_MABX_B.DataType_hw = L4_MABX_B.Operator_cw;
13471
13472 /* S-Function (sfix_bitop): '<S909>/Operator' */
13473 L4_MABX_B.Operator_ci = (uint8_T)(L4_MABX_B.DataTypeConversion_ly &
13474 L4_MABX_P.Operator_BitMask_oj);
13475
13476 /* DataTypeConversion: '<S909>/DataType' */
13477 L4_MABX_B.DataType_df = L4_MABX_B.Operator_ci;
13478
13479 /* S-Function (sfix_bitop): '<S910>/Operator' */
13480 L4_MABX_B.Operator_cy = (uint8_T)(L4_MABX_B.DataTypeConversion_ly &
13481 L4_MABX_P.Operator_BitMask_l);
13482
13483 /* DataTypeConversion: '<S910>/DataType' */
13484 L4_MABX_B.DataType_n = L4_MABX_B.Operator_cy;
13485
13486 /* S-Function (sfix_bitop): '<S913>/Operator' */
13487 L4_MABX_B.Operator_fi = (uint8_T)(L4_MABX_B.DataTypeConversion_ly &
13488 L4_MABX_P.Operator_BitMask_hs);
13489
13490 /* DataTypeConversion: '<S913>/DataType' */
13491 L4_MABX_B.DataType_a = L4_MABX_B.Operator_fi;
13492
13493 /* DataTypeConversion: '<S896>/Data Type Conversion2' */
13494 L4_MABX_B.DataTypeConversion2_b = (L4_MABX_B.DataType_hw != 0);
13495
13496 /* ArithShift: '<S896>/Shift_Arithmetic ' */
13497 L4_MABX_B.Shift_Arithmetic_c = ldexp(L4_MABX_B.DataType_df, (-1));
13498
13499 /* DataTypeConversion: '<S896>/Data Type Conversion3' */
13500 L4_MABX_B.DataTypeConversion3_dx = (L4_MABX_B.Shift_Arithmetic_c != 0.0);
13501
13502 /* ArithShift: '<S896>/Shift_Arithmetic 1' */
13503 L4_MABX_B.Shift_Arithmetic1_e = ldexp(L4_MABX_B.DataType_n, (-2));
13504
13505 /* DataTypeConversion: '<S896>/Data Type Conversion4' */
13506 L4_MABX_B.DataTypeConversion4_c = (L4_MABX_B.Shift_Arithmetic1_e != 0.0);
13507
13508 /* ArithShift: '<S896>/Shift_Arithmetic 4' */
13509 L4_MABX_B.Shift_Arithmetic4_on = ldexp(L4_MABX_B.DataType_a, (-5));
13510
13511 /* DataTypeConversion: '<S896>/Data Type Conversion7' */
13512 L4_MABX_B.DataTypeConversion7_is = (L4_MABX_B.Shift_Arithmetic4_on != 0.0);
13513
13514 /* DataTypeConversion: '<S899>/Data Type Conversion' */
13515 L4_MABX_B.DataTypeConversion_o = AutonomousOutputEnabled;
13516
13517 /* Switch: '<S933>/Switch' incorporates:
13518 * Constant: '<S933>/Constant'
13519 * Constant: '<S933>/Constant1'
13520 */
13521 if (L4_MABX_B.DataTypeConversion_o != 0) {
13522 L4_MABX_B.Switch_j = L4_MABX_P.Constant_Value_p4;
13523 } else {
13524 L4_MABX_B.Switch_j = L4_MABX_P.Constant1_Value_la;
13525 }
13526
13527 /* End of Switch: '<S933>/Switch' */
13528
13529 /* DataTypeConversion: '<S931>/Data Type Conversion' */
13530 L4_MABX_B.DataTypeConversion_fw = L4_MABX_B.Switch_j;
13531
13532 /* RelationalOperator: '<S950>/Operator' incorporates:
13533 * Constant: '<S932>/Constant'
13534 * Constant: '<S932>/Constant6'
13535 */
13536 L4_MABX_B.Operator_ap = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
13537 L4_MABX_P.Constant_Value_lo);
13538
13539 /* Outputs for Enabled SubSystem: '<S932>/DEFAULT_TRQ_CTRL_MODE' */
13540 L4_MABX_ALL_CTRL_DISABLED(L4_MABX_B.Operator_ap, &L4_MABX_B.Merge,
13541 &L4_MABX_P.DEFAULT_TRQ_CTRL_MODE);
13542
13543 /* End of Outputs for SubSystem: '<S932>/DEFAULT_TRQ_CTRL_MODE' */
13544
13545 /* Switch: '<S949>/Switch' incorporates:
13546 * Constant: '<S949>/zero'
13547 */
13548 if (L4_MABX_B.DataTypeConversion_o != 0) {
13549 /* MultiPortSwitch: '<S949>/Multiport_Switch' incorporates:
13550 * Constant: '<S949>/Constant1'
13551 * Constant: '<S949>/Constant7'
13552 */
13553 switch (PROPB_REAX_1_E4_DES_POS_SIG_SRC_APV) {
13554 case ENUM_STEERING_POS_SIGNAL_SOURCE_T_SW_EMULATION:
13555 L4_MABX_B.Multiport_Switch = PROPB_REAX_1_E4_DESIRED_POSITION_APV;
13556 break;
13557
13558 case ENUM_STEERING_POS_SIGNAL_SOURCE_T_ESTIMATION:
13559 L4_MABX_B.Multiport_Switch = DesiredSteeringAngle;
13560 break;
13561
13562 default:
13563 L4_MABX_B.Multiport_Switch = PROPB_REAX_1_E4_DESIRED_POSITION_APV;
13564 break;
13565 }
13566
13567 /* End of MultiPortSwitch: '<S949>/Multiport_Switch' */
13568 L4_MABX_B.Switch = L4_MABX_B.Multiport_Switch;
13569 } else {
13570 L4_MABX_B.Switch = L4_MABX_P.zero_Value_n;
13571 }
13572
13573 /* End of Switch: '<S949>/Switch' */
13574
13575 /* RelationalOperator: '<S959>/Operator_MX' incorporates:
13576 * Constant: '<S959>/MX'
13577 */
13578 L4_MABX_B.Operator_MX = (L4_MABX_B.Switch > L4_MABX_P.MX_Value);
13579
13580 /* RelationalOperator: '<S959>/Operator_MN' incorporates:
13581 * Constant: '<S959>/MN'
13582 */
13583 L4_MABX_B.Operator_MN = (L4_MABX_B.Switch < L4_MABX_P.MN_Value);
13584
13585 /* Switch: '<S959>/Switch2' incorporates:
13586 * Constant: '<S959>/MX'
13587 * Switch: '<S959>/Switch1'
13588 */
13589 if (L4_MABX_B.Operator_MX) {
13590 L4_MABX_B.Switch2 = L4_MABX_P.MX_Value;
13591 } else {
13592 if (L4_MABX_B.Operator_MN) {
13593 /* Switch: '<S959>/Switch1' incorporates:
13594 * Constant: '<S959>/MN'
13595 */
13596 L4_MABX_B.Switch1 = L4_MABX_P.MN_Value;
13597 } else {
13598 /* Switch: '<S959>/Switch1' */
13599 L4_MABX_B.Switch1 = L4_MABX_B.Switch;
13600 }
13601
13602 L4_MABX_B.Switch2 = L4_MABX_B.Switch1;
13603 }
13604
13605 /* End of Switch: '<S959>/Switch2' */
13606
13607 /* DataTypeConversion: '<S959>/DataType' */
13608 L4_MABX_B.DataType_p5 = L4_MABX_B.Switch2;
13609
13610 /* RelationalOperator: '<S951>/Operator' incorporates:
13611 * Constant: '<S932>/Constant1'
13612 * Constant: '<S932>/Constant6'
13613 */
13614 L4_MABX_B.Operator_m0 = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
13615 L4_MABX_P.Constant1_Value_ki);
13616
13617 /* Outputs for Enabled SubSystem: '<S932>/POSITION_CONTROL_MODE' incorporates:
13618 * EnablePort: '<S960>/Enable'
13619 */
13620 if (L4_MABX_B.Operator_m0) {
13621 /* Product: '<S960>/Product' incorporates:
13622 * Constant: '<S960>/Constant'
13623 */
13624 L4_MABX_B.Product = L4_MABX_B.DataType_p5 * L4_MABX_P.Constant_Value_ke;
13625
13626 /* DataTypeConversion: '<S960>/Data Type Conversion' */
13627 PositionFinalLimited = floor(L4_MABX_B.Product);
13628 if (PositionFinalLimited < 2.147483648E+9) {
13629 if (PositionFinalLimited >= -2.147483648E+9) {
13630 i = (int32_T)PositionFinalLimited;
13631 } else {
13632 i = MIN_int32_T;
13633 }
13634 } else {
13635 i = MAX_int32_T;
13636 }
13637
13638 L4_MABX_B.Merge = i;
13639
13640 /* End of DataTypeConversion: '<S960>/Data Type Conversion' */
13641 }
13642
13643 /* End of Outputs for SubSystem: '<S932>/POSITION_CONTROL_MODE' */
13644
13645 /* RelationalOperator: '<S952>/Operator' incorporates:
13646 * Constant: '<S932>/Constant2'
13647 * Constant: '<S932>/Constant6'
13648 */
13649 L4_MABX_B.Operator_f0c = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
13650 L4_MABX_P.Constant2_Value_i);
13651
13652 /* Outputs for Enabled SubSystem: '<S932>/EXT_TRQ_CTRL_MODE_A' */
13653 L4_MABX_ALL_CTRL_DISABLED(L4_MABX_B.Operator_f0c, &L4_MABX_B.Merge,
13654 &L4_MABX_P.EXT_TRQ_CTRL_MODE_A);
13655
13656 /* End of Outputs for SubSystem: '<S932>/EXT_TRQ_CTRL_MODE_A' */
13657
13658 /* RelationalOperator: '<S953>/Operator' incorporates:
13659 * Constant: '<S932>/Constant3'
13660 * Constant: '<S932>/Constant6'
13661 */
13662 L4_MABX_B.Operator_nx4 = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
13663 L4_MABX_P.Constant3_Value_hz);
13664
13665 /* Outputs for Enabled SubSystem: '<S932>/ALL_CTRL_DISABLED' */
13666 L4_MABX_ALL_CTRL_DISABLED(L4_MABX_B.Operator_nx4, &L4_MABX_B.Merge,
13667 &L4_MABX_P.ALL_CTRL_DISABLED);
13668
13669 /* End of Outputs for SubSystem: '<S932>/ALL_CTRL_DISABLED' */
13670
13671 /* RelationalOperator: '<S954>/Operator' incorporates:
13672 * Constant: '<S932>/Constant4'
13673 * Constant: '<S932>/Constant6'
13674 */
13675 L4_MABX_B.Operator_ck = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
13676 L4_MABX_P.Constant4_Value_e);
13677
13678 /* Outputs for Enabled SubSystem: '<S932>/EXT_TRQ_CTRL_MODE_B' */
13679 L4_MABX_ALL_CTRL_DISABLED(L4_MABX_B.Operator_ck, &L4_MABX_B.Merge,
13680 &L4_MABX_P.EXT_TRQ_CTRL_MODE_B);
13681
13682 /* End of Outputs for SubSystem: '<S932>/EXT_TRQ_CTRL_MODE_B' */
13683
13684 /* RelationalOperator: '<S955>/Operator' incorporates:
13685 * Constant: '<S932>/Constant5'
13686 * Constant: '<S932>/Constant6'
13687 */
13688 L4_MABX_B.Operator_j0 = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
13689 L4_MABX_P.Constant5_Value_d);
13690
13691 /* Outputs for Enabled SubSystem: '<S932>/EXT_TRQ_CTRL_MODE_C' */
13692 L4_MABX_ALL_CTRL_DISABLED(L4_MABX_B.Operator_j0, &L4_MABX_B.Merge,
13693 &L4_MABX_P.EXT_TRQ_CTRL_MODE_C);
13694
13695 /* End of Outputs for SubSystem: '<S932>/EXT_TRQ_CTRL_MODE_C' */
13696
13697 /* DataTypeConversion: '<S931>/Data Type Conversion2' */
13698 L4_MABX_B.DataTypeConversion2_mk = (uint32_T)L4_MABX_B.Merge;
13699
13700 /* S-Function (sfix_bitop): '<S936>/Operator' */
13701 L4_MABX_B.Operator_f = L4_MABX_B.DataTypeConversion2_mk &
13702 L4_MABX_P.Operator_BitMask_al;
13703
13704 /* DataTypeConversion: '<S936>/DataType' */
13705 tmp = L4_MABX_B.Operator_f;
13706 if (tmp > 255U) {
13707 tmp = 255U;
13708 }
13709
13710 L4_MABX_B.DataType_g2 = (uint8_T)tmp;
13711
13712 /* End of DataTypeConversion: '<S936>/DataType' */
13713
13714 /* S-Function (sfix_bitop): '<S937>/Operator' */
13715 L4_MABX_B.Operator_m = L4_MABX_B.DataTypeConversion2_mk &
13716 L4_MABX_P.Operator_BitMask_ac;
13717
13718 /* DataTypeConversion: '<S937>/DataType' */
13719 tmp = L4_MABX_B.Operator_m;
13720 if (tmp > 65535U) {
13721 tmp = 65535U;
13722 }
13723
13724 L4_MABX_B.DataType_ji3 = (uint16_T)tmp;
13725
13726 /* End of DataTypeConversion: '<S937>/DataType' */
13727
13728 /* ArithShift: '<S931>/Shift_Arithmetic ' */
13729 L4_MABX_B.Shift_Arithmetic_p3 = (uint16_T)((uint32_T)L4_MABX_B.DataType_ji3 >>
13730 8);
13731
13732 /* DataTypeConversion: '<S931>/Data Type Conversion4' */
13733 tmp_0 = L4_MABX_B.Shift_Arithmetic_p3;
13734 if (tmp_0 > 255) {
13735 tmp_0 = 255U;
13736 }
13737
13738 L4_MABX_B.DataTypeConversion4_d2 = (uint8_T)tmp_0;
13739
13740 /* End of DataTypeConversion: '<S931>/Data Type Conversion4' */
13741
13742 /* S-Function (sfix_bitop): '<S938>/Operator' */
13743 L4_MABX_B.Operator_i = L4_MABX_B.DataTypeConversion2_mk &
13744 L4_MABX_P.Operator_BitMask_g0;
13745
13746 /* DataTypeConversion: '<S938>/DataType' */
13747 L4_MABX_B.DataType_gg = L4_MABX_B.Operator_i;
13748
13749 /* ArithShift: '<S931>/Shift_Arithmetic 1' */
13750 L4_MABX_B.Shift_Arithmetic1_gf = L4_MABX_B.DataType_gg >> 16;
13751
13752 /* DataTypeConversion: '<S931>/Data Type Conversion5' */
13753 tmp = L4_MABX_B.Shift_Arithmetic1_gf;
13754 if (tmp > 255U) {
13755 tmp = 255U;
13756 }
13757
13758 L4_MABX_B.DataTypeConversion5_en = (uint8_T)tmp;
13759
13760 /* End of DataTypeConversion: '<S931>/Data Type Conversion5' */
13761
13762 /* S-Function (sfix_bitop): '<S939>/Operator' */
13763 L4_MABX_B.Operator_fl = L4_MABX_B.DataTypeConversion2_mk &
13764 L4_MABX_P.Operator_BitMask_je;
13765
13766 /* DataTypeConversion: '<S939>/DataType' */
13767 L4_MABX_B.DataType_mmt = L4_MABX_B.Operator_fl;
13768
13769 /* ArithShift: '<S931>/Shift_Arithmetic 2' */
13770 L4_MABX_B.Shift_Arithmetic2_l = L4_MABX_B.DataType_mmt >> 24;
13771
13772 /* DataTypeConversion: '<S931>/Data Type Conversion6' */
13773 tmp = L4_MABX_B.Shift_Arithmetic2_l;
13774 if (tmp > 255U) {
13775 tmp = 255U;
13776 }
13777
13778 L4_MABX_B.DataTypeConversion6_g = (uint8_T)tmp;
13779
13780 /* End of DataTypeConversion: '<S931>/Data Type Conversion6' */
13781
13782 /* Reshape: '<S961>/Reshape' incorporates:
13783 * Constant: '<S961>/Constant'
13784 */
13785 for (i = 0; i < 16; i++) {
13786 L4_MABX_B.Reshape_m[i] = L4_MABX_P.Repeating_Sequence_Stair_OutV_h[i];
13787 }
13788
13789 /* End of Reshape: '<S961>/Reshape' */
13790
13791 /* UnitDelay: '<S961>/Unit_Delay' */
13792 L4_MABX_B.Unit_Delay_fh = L4_MABX_DW.Unit_Delay_DSTATE_g0;
13793
13794 /* UnitDelay: '<S962>/Unit Delay' */
13795 L4_MABX_B.UnitDelay_d = L4_MABX_DW.UnitDelay_DSTATE_a;
13796
13797 /* Switch: '<S965>/Switch1' incorporates:
13798 * Constant: '<S962>/E'
13799 * Constant: '<S962>/IV'
13800 * Switch: '<S964>/Switch1'
13801 */
13802 if (L4_MABX_B.Unit_Delay_fh) {
13803 L4_MABX_B.Switch1_hz = L4_MABX_P.IV_Value_l;
13804 } else {
13805 if (L4_MABX_P.E_Value_k) {
13806 /* Sum: '<S962>/Subtract' incorporates:
13807 * Constant: '<S962>/Constant'
13808 * Switch: '<S964>/Switch1'
13809 */
13810 q0 = L4_MABX_P.Constant_Value_ey;
13811 tmp = q0 + L4_MABX_B.UnitDelay_d;
13812 if (tmp < q0) {
13813 tmp = MAX_uint32_T;
13814 }
13815
13816 L4_MABX_B.Subtract_d = tmp;
13817
13818 /* End of Sum: '<S962>/Subtract' */
13819
13820 /* Switch: '<S964>/Switch1' */
13821 L4_MABX_B.Switch1_g = L4_MABX_B.Subtract_d;
13822 } else {
13823 /* Switch: '<S964>/Switch1' */
13824 L4_MABX_B.Switch1_g = L4_MABX_B.UnitDelay_d;
13825 }
13826
13827 L4_MABX_B.Switch1_hz = L4_MABX_B.Switch1_g;
13828 }
13829
13830 /* End of Switch: '<S965>/Switch1' */
13831
13832 /* Selector: '<S961>/Selector' */
13833 L4_MABX_B.Selector_e = L4_MABX_B.Reshape_m[(int32_T)L4_MABX_B.Switch1_hz - 1];
13834
13835 /* DataTypeConversion: '<S931>/Data Type Conversion1' */
13836 L4_MABX_B.DataTypeConversion1_om = L4_MABX_B.Selector_e;
13837
13838 /* S-Function (sfix_bitop): '<S944>/Operator' */
13839 L4_MABX_B.Operator_nn = (uint8_T)(L4_MABX_B.DataTypeConversion1_om &
13840 L4_MABX_P.Operator_BitMask_cz);
13841
13842 /* DataTypeConversion: '<S944>/DataType' */
13843 L4_MABX_B.DataType_ew = L4_MABX_B.Operator_nn;
13844
13845 /* DataTypeConversion: '<S930>/Data Type Conversion' incorporates:
13846 * Constant: '<S930>/Priority'
13847 */
13848 L4_MABX_B.DataTypeConversion_m = L4_MABX_P.Priority_Value_p;
13849
13850 /* ArithShift: '<S930>/Shift_Arithmetic ' */
13851 L4_MABX_B.Shift_Arithmetic_nm = L4_MABX_B.DataTypeConversion_m << 26;
13852
13853 /* DataTypeConversion: '<S930>/Data Type Conversion1' incorporates:
13854 * Constant: '<S930>/ExtendedDataPage'
13855 */
13856 L4_MABX_B.DataTypeConversion1_ih = L4_MABX_P.ExtendedDataPage_Value_h;
13857
13858 /* ArithShift: '<S930>/Shift_Arithmetic 1' */
13859 L4_MABX_B.Shift_Arithmetic1_j = L4_MABX_B.DataTypeConversion1_ih << 25;
13860
13861 /* DataTypeConversion: '<S930>/Data Type Conversion2' incorporates:
13862 * Constant: '<S930>/DataPage'
13863 */
13864 L4_MABX_B.DataTypeConversion2_d1 = L4_MABX_P.DataPage_Value_o;
13865
13866 /* ArithShift: '<S930>/Shift_Arithmetic 2' */
13867 L4_MABX_B.Shift_Arithmetic2_lw = L4_MABX_B.DataTypeConversion2_d1 << 24;
13868
13869 /* DataTypeConversion: '<S930>/Data Type Conversion3' incorporates:
13870 * Constant: '<S930>/PDUFormat'
13871 */
13872 L4_MABX_B.DataTypeConversion3_h4 = L4_MABX_P.PDUFormat_Value_l;
13873
13874 /* ArithShift: '<S930>/Shift_Arithmetic 3' */
13875 L4_MABX_B.Shift_Arithmetic3_l = L4_MABX_B.DataTypeConversion3_h4 << 16;
13876
13877 /* DataTypeConversion: '<S930>/Data Type Conversion4' incorporates:
13878 * Constant: '<S930>/PDUSpecific'
13879 */
13880 L4_MABX_B.DataTypeConversion4_hm = L4_MABX_P.PDUSpecific_Value_d;
13881
13882 /* ArithShift: '<S930>/Shift_Arithmetic 4' */
13883 L4_MABX_B.Shift_Arithmetic4_m = L4_MABX_B.DataTypeConversion4_hm << 8;
13884
13885 /* DataTypeConversion: '<S930>/Data Type Conversion5' incorporates:
13886 * Constant: '<S930>/SourceAddress'
13887 */
13888 L4_MABX_B.DataTypeConversion5_k = L4_MABX_P.SourceAddress_Value_f;
13889
13890 /* S-Function (sfix_bitop): '<S935>/Operator' */
13891 L4_MABX_B.Operator_aq = L4_MABX_B.Shift_Arithmetic_nm |
13892 L4_MABX_B.Shift_Arithmetic1_j | L4_MABX_B.Shift_Arithmetic2_lw |
13893 L4_MABX_B.Shift_Arithmetic3_l | L4_MABX_B.Shift_Arithmetic4_m |
13894 L4_MABX_B.DataTypeConversion5_k;
13895
13896 /* DataTypeConversion: '<S935>/DataType' */
13897 L4_MABX_B.DataType_o2 = L4_MABX_B.Operator_aq;
13898
13899 /* DataTypeConversion: '<S931>/Data Type Conversion3' */
13900 L4_MABX_B.DataTypeConversion3_j = L4_MABX_B.DataType_o2;
13901
13902 /* S-Function (sfix_bitop): '<S940>/Operator' */
13903 L4_MABX_B.Operator_aa = L4_MABX_B.DataTypeConversion3_j &
13904 L4_MABX_P.Operator_BitMask_ie;
13905
13906 /* DataTypeConversion: '<S940>/DataType' */
13907 tmp = L4_MABX_B.Operator_aa;
13908 if (tmp > 255U) {
13909 tmp = 255U;
13910 }
13911
13912 L4_MABX_B.DataType_iy = (uint8_T)tmp;
13913
13914 /* End of DataTypeConversion: '<S940>/DataType' */
13915
13916 /* S-Function (sfix_bitop): '<S941>/Operator' */
13917 L4_MABX_B.Operator_p = L4_MABX_B.DataTypeConversion3_j &
13918 L4_MABX_P.Operator_BitMask_ms;
13919
13920 /* DataTypeConversion: '<S941>/DataType' */
13921 tmp = L4_MABX_B.Operator_p;
13922 if (tmp > 65535U) {
13923 tmp = 65535U;
13924 }
13925
13926 L4_MABX_B.DataType_kv = (uint16_T)tmp;
13927
13928 /* End of DataTypeConversion: '<S941>/DataType' */
13929
13930 /* ArithShift: '<S931>/Shift_Arithmetic 3' */
13931 L4_MABX_B.Shift_Arithmetic3_or = (uint16_T)((uint32_T)L4_MABX_B.DataType_kv >>
13932 8);
13933
13934 /* DataTypeConversion: '<S931>/Data Type Conversion8' */
13935 tmp_0 = L4_MABX_B.Shift_Arithmetic3_or;
13936 if (tmp_0 > 255) {
13937 tmp_0 = 255U;
13938 }
13939
13940 L4_MABX_B.DataTypeConversion8_c = (uint8_T)tmp_0;
13941
13942 /* End of DataTypeConversion: '<S931>/Data Type Conversion8' */
13943
13944 /* S-Function (sfix_bitop): '<S942>/Operator' */
13945 L4_MABX_B.Operator_p1 = L4_MABX_B.DataTypeConversion3_j &
13946 L4_MABX_P.Operator_BitMask_px;
13947
13948 /* DataTypeConversion: '<S942>/DataType' */
13949 L4_MABX_B.DataType_oc = L4_MABX_B.Operator_p1;
13950
13951 /* ArithShift: '<S931>/Shift_Arithmetic 4' */
13952 L4_MABX_B.Shift_Arithmetic4_onr = L4_MABX_B.DataType_oc >> 16;
13953
13954 /* DataTypeConversion: '<S931>/Data Type Conversion9' */
13955 tmp = L4_MABX_B.Shift_Arithmetic4_onr;
13956 if (tmp > 255U) {
13957 tmp = 255U;
13958 }
13959
13960 L4_MABX_B.DataTypeConversion9_b = (uint8_T)tmp;
13961
13962 /* End of DataTypeConversion: '<S931>/Data Type Conversion9' */
13963
13964 /* S-Function (sfix_bitop): '<S943>/Operator' */
13965 L4_MABX_B.Operator_ij = L4_MABX_B.DataTypeConversion3_j &
13966 L4_MABX_P.Operator_BitMask_g5;
13967
13968 /* DataTypeConversion: '<S943>/DataType' */
13969 L4_MABX_B.DataType_k4 = L4_MABX_B.Operator_ij;
13970
13971 /* ArithShift: '<S931>/Shift_Arithmetic 5' */
13972 L4_MABX_B.Shift_Arithmetic5_l = L4_MABX_B.DataType_k4 >> 24;
13973
13974 /* DataTypeConversion: '<S931>/Data Type Conversion10' */
13975 tmp = L4_MABX_B.Shift_Arithmetic5_l;
13976 if (tmp > 255U) {
13977 tmp = 255U;
13978 }
13979
13980 L4_MABX_B.DataTypeConversion10_p = (uint8_T)tmp;
13981
13982 /* End of DataTypeConversion: '<S931>/Data Type Conversion10' */
13983
13984 /* Sum: '<S931>/Add' incorporates:
13985 * Constant: '<S931>/Constant'
13986 * Constant: '<S931>/Constant1'
13987 */
13988 L4_MABX_B.Add_gz = (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)
13989 (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)
13990 ((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)
13991 (uint8_T)((uint32_T)L4_MABX_B.DataTypeConversion_fw + L4_MABX_B.DataType_g2)
13992 + L4_MABX_B.DataTypeConversion4_d2) + L4_MABX_B.DataTypeConversion5_en) +
13993 L4_MABX_B.DataTypeConversion6_g) + L4_MABX_P.Constant_Value_mgq) +
13994 L4_MABX_P.Constant1_Value_gd) + L4_MABX_B.DataType_iy) +
13995 L4_MABX_B.DataTypeConversion8_c) + L4_MABX_B.DataTypeConversion9_b)
13996 + L4_MABX_B.DataTypeConversion10_p) + L4_MABX_B.DataType_ew);
13997
13998 /* ArithShift: '<S931>/Shift_Arithmetic 6' */
13999 L4_MABX_B.Shift_Arithmetic6_l = (uint8_T)((uint32_T)L4_MABX_B.Add_gz >> 4);
14000
14001 /* Sum: '<S931>/Add1' */
14002 L4_MABX_B.Add1_d = (uint8_T)((uint32_T)L4_MABX_B.Shift_Arithmetic6_l +
14003 L4_MABX_B.Add_gz);
14004
14005 /* S-Function (sfix_bitop): '<S945>/Operator' */
14006 L4_MABX_B.Operator_ik = (uint8_T)(L4_MABX_B.Add1_d &
14007 L4_MABX_P.Operator_BitMask_h5t);
14008
14009 /* DataTypeConversion: '<S945>/DataType' */
14010 L4_MABX_B.DataType_mz = L4_MABX_B.Operator_ik;
14011
14012 /* ArithShift: '<S931>/Shift_Arithmetic 7' */
14013 L4_MABX_B.Shift_Arithmetic7_f = (uint8_T)(L4_MABX_B.DataType_mz << 4);
14014
14015 /* S-Function (sfix_bitop): '<S946>/Operator' */
14016 L4_MABX_B.Operator_kl = (uint8_T)(L4_MABX_B.DataType_ew |
14017 L4_MABX_B.Shift_Arithmetic7_f);
14018
14019 /* DataTypeConversion: '<S946>/DataType' */
14020 L4_MABX_B.DataType_owp = L4_MABX_B.Operator_kl;
14021
14022 /* DataTypeConversion: '<S897>/Data Type Conversion1' incorporates:
14023 * Constant: '<S931>/Constant'
14024 * Constant: '<S931>/Constant1'
14025 */
14026 L4_MABX_B.DataTypeConversion1_p[0] = L4_MABX_B.DataTypeConversion_fw;
14027 L4_MABX_B.DataTypeConversion1_p[1] = L4_MABX_B.DataType_g2;
14028 L4_MABX_B.DataTypeConversion1_p[2] = L4_MABX_B.DataTypeConversion4_d2;
14029 L4_MABX_B.DataTypeConversion1_p[3] = L4_MABX_B.DataTypeConversion5_en;
14030 L4_MABX_B.DataTypeConversion1_p[4] = L4_MABX_B.DataTypeConversion6_g;
14031 L4_MABX_B.DataTypeConversion1_p[5] = L4_MABX_P.Constant_Value_mgq;
14032 L4_MABX_B.DataTypeConversion1_p[6] = L4_MABX_P.Constant1_Value_gd;
14033 L4_MABX_B.DataTypeConversion1_p[7] = L4_MABX_B.DataType_owp;
14034
14035 /* Outputs for Enabled SubSystem: '<S918>/PropB_REAX_1_E4' incorporates:
14036 * EnablePort: '<S920>/Enable'
14037 */
14038 /* Constant: '<S452>/useReAX_CAN_Ch2' */
14039 if (L4_MABX_P.useReAX_CAN_Ch2_Value) {
14040 /* S-Function (rti_commonblock): '<S920>/S-Function1' incorporates:
14041 * Constant: '<S918>/Constant'
14042 * Constant: '<S918>/Constant1'
14043 */
14044 /* This comment workarounds a code generation problem */
14045
14046 /* dSPACE RTICAN TX Message Block: "PropB_REAX_1_E4" Id:419426276 */
14047 {
14048 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14049 0x00 };
14050
14051 Float32 delayTime = 0.0;
14052
14053 /* link this pointer to CAN_Msg for use in initialize_io_units() */
14054 CANTP1_PTR_M1_C2_XTD_0x18FFEFE4 = &(CAN_Msg[0]);
14055
14056 /* ... perform loop-back if required */
14057 if (L4_MABX_P.Constant1_Value_fy > 0.5) {
14058 /* ... updating the used tx-clientbuffer */
14059 can_tp1_msg_update_all( CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->module,
14060 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->queue );
14061
14062 /* ... Read status and timestamp info perform loop-back (previous message) */
14063 can_tp1_tx_msg_read_loopback(CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4,
14064 8, // datalen
14065 &(CAN_Msg[0]),
14066 CANTP1_RX_SPMSG_M1_C2_XTD);
14067
14068 /* Convert timestamp */
14069 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->processed) {
14070 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp =
14071 rtk_dsts_time_to_simtime_convert
14072 (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp);
14073 }
14074 } else {
14075 /* ... Read status and timestamp info (previous message) */
14076 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4);
14077
14078 /* Convert timestamp */
14079 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->processed) {
14080 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp =
14081 rtk_dsts_time_to_simtime_convert
14082 (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp);
14083 }
14084 }
14085
14086 /* Messages with timestamp zero have been received in pause/stop state
14087 and must not be handled.
14088 */
14089 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp > 0.0) {
14090 L4_MABX_B.SFunction1_o1_ol = (real_T)
14091 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->processed;
14092 L4_MABX_B.SFunction1_o2_b = (real_T)
14093 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp;
14094 L4_MABX_B.SFunction1_o3_dr = (real_T)
14095 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->deltatime;
14096 L4_MABX_B.SFunction1_o4_k = (real_T)
14097 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->delaytime;
14098 }
14099
14100 /* ... Encode Simulink signals of TX and RM blocks*/
14101 {
14102 rtican_Signal_t CAN_Sgn;
14103 UInt32 i;
14104
14105 /* Initialize the static message data to zero */
14106 for (i=0; i<8; i++ )
14107 CAN_Msg[i] = 0;
14108
14109 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
14110 /* Add or substract 0.5 in order to round to nearest integer */
14111 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[0] ) +
14112 0.5);
14113 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14114 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
14115
14116 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
14117 /* Add or substract 0.5 in order to round to nearest integer */
14118 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[1] ) +
14119 0.5);
14120 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14121 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
14122
14123 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
14124 /* Add or substract 0.5 in order to round to nearest integer */
14125 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[2] ) +
14126 0.5);
14127 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14128 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
14129
14130 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
14131 /* Add or substract 0.5 in order to round to nearest integer */
14132 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[3] ) +
14133 0.5);
14134 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14135 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
14136
14137 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
14138 /* Add or substract 0.5 in order to round to nearest integer */
14139 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[4] ) +
14140 0.5);
14141 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14142 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
14143
14144 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
14145 /* Add or substract 0.5 in order to round to nearest integer */
14146 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[5] ) +
14147 0.5);
14148 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14149 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
14150
14151 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
14152 /* Add or substract 0.5 in order to round to nearest integer */
14153 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[6] ) +
14154 0.5);
14155 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14156 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
14157
14158 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
14159 /* Add or substract 0.5 in order to round to nearest integer */
14160 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[7] ) +
14161 0.5);
14162 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14163 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
14164 }
14165
14166 delayTime = (Float32) L4_MABX_P.Constant_Value_ah / (1700);
14167
14168 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
14169 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FFEFE4], 8,
14170 &(CAN_Msg[0]), delayTime);
14171 }
14172 }
14173
14174 /* End of Outputs for SubSystem: '<S918>/PropB_REAX_1_E4' */
14175
14176 /* Outputs for Enabled SubSystem: '<S919>/PropB_REAX_1_E4' incorporates:
14177 * EnablePort: '<S921>/Enable'
14178 */
14179 if (L4_MABX_B.EnablePropB_ReAX_CAN6) {
14180 /* S-Function (rti_commonblock): '<S921>/S-Function1' incorporates:
14181 * Constant: '<S919>/Constant'
14182 * Constant: '<S919>/Constant1'
14183 */
14184 /* This comment workarounds a code generation problem */
14185
14186 /* dSPACE RTICAN TX Message Block: "PropB_REAX_1_E4" Id:419426276 */
14187 {
14188 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14189 0x00 };
14190
14191 Float32 delayTime = 0.0;
14192
14193 /* link this pointer to CAN_Msg for use in initialize_io_units() */
14194 CANTP1_PTR_M3_C2_XTD_0x18FFEFE4 = &(CAN_Msg[0]);
14195
14196 /* ... perform loop-back if required */
14197 if (L4_MABX_P.Constant1_Value_d > 0.5) {
14198 /* ... updating the used tx-clientbuffer */
14199 can_tp1_msg_update_all( CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->module,
14200 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->queue );
14201
14202 /* ... Read status and timestamp info perform loop-back (previous message) */
14203 can_tp1_tx_msg_read_loopback(CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4,
14204 8, // datalen
14205 &(CAN_Msg[0]),
14206 CANTP1_RX_SPMSG_M3_C2_XTD);
14207
14208 /* Convert timestamp */
14209 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->processed) {
14210 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp =
14211 rtk_dsts_time_to_simtime_convert
14212 (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp);
14213 }
14214 } else {
14215 /* ... Read status and timestamp info (previous message) */
14216 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4);
14217
14218 /* Convert timestamp */
14219 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->processed) {
14220 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp =
14221 rtk_dsts_time_to_simtime_convert
14222 (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp);
14223 }
14224 }
14225
14226 /* Messages with timestamp zero have been received in pause/stop state
14227 and must not be handled.
14228 */
14229 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp > 0.0) {
14230 L4_MABX_B.SFunction1_o1_o0 = (real_T)
14231 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->processed;
14232 L4_MABX_B.SFunction1_o2_gr = (real_T)
14233 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp;
14234 L4_MABX_B.SFunction1_o3_n = (real_T)
14235 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->deltatime;
14236 L4_MABX_B.SFunction1_o4_ee = (real_T)
14237 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->delaytime;
14238 }
14239
14240 /* ... Encode Simulink signals of TX and RM blocks*/
14241 {
14242 rtican_Signal_t CAN_Sgn;
14243 UInt32 i;
14244
14245 /* Initialize the static message data to zero */
14246 for (i=0; i<8; i++ )
14247 CAN_Msg[i] = 0;
14248
14249 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
14250 /* Add or substract 0.5 in order to round to nearest integer */
14251 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[0] ) +
14252 0.5);
14253 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14254 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
14255
14256 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
14257 /* Add or substract 0.5 in order to round to nearest integer */
14258 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[1] ) +
14259 0.5);
14260 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14261 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
14262
14263 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
14264 /* Add or substract 0.5 in order to round to nearest integer */
14265 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[2] ) +
14266 0.5);
14267 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14268 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
14269
14270 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
14271 /* Add or substract 0.5 in order to round to nearest integer */
14272 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[3] ) +
14273 0.5);
14274 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14275 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
14276
14277 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
14278 /* Add or substract 0.5 in order to round to nearest integer */
14279 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[4] ) +
14280 0.5);
14281 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14282 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
14283
14284 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
14285 /* Add or substract 0.5 in order to round to nearest integer */
14286 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[5] ) +
14287 0.5);
14288 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14289 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
14290
14291 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
14292 /* Add or substract 0.5 in order to round to nearest integer */
14293 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[6] ) +
14294 0.5);
14295 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14296 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
14297
14298 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
14299 /* Add or substract 0.5 in order to round to nearest integer */
14300 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p[7] ) +
14301 0.5);
14302 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14303 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
14304 }
14305
14306 delayTime = (Float32) L4_MABX_P.Constant_Value_hk / (3401);
14307
14308 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
14309 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0X18FFEFE4], 8,
14310 &(CAN_Msg[0]), delayTime);
14311 }
14312 }
14313
14314 /* End of Outputs for SubSystem: '<S919>/PropB_REAX_1_E4' */
14315
14316 /* DataTypeConversion: '<S898>/Data Type Conversion' incorporates:
14317 * Constant: '<S809>/CANT_VDC2_0B_CHANNEL_APV'
14318 */
14319 L4_MABX_B.DataTypeConversion_dp = (uint8_T)
14320 L4_MABX_P.CANT_VDC2_0B_CHANNEL_APV_Value;
14321
14322 /* S-Function (sfix_bitop): '<S926>/Operator' */
14323 L4_MABX_B.Operator_c1 = (uint8_T)(L4_MABX_B.DataTypeConversion_dp &
14324 L4_MABX_P.Operator_BitMask_go);
14325
14326 /* DataTypeConversion: '<S926>/DataType' */
14327 L4_MABX_B.DataType_g = L4_MABX_B.Operator_c1;
14328
14329 /* ArithShift: '<S898>/Shift_Arithmetic 3' */
14330 L4_MABX_B.Shift_Arithmetic3_b = ldexp(L4_MABX_B.DataType_g, (-4));
14331
14332 /* DataTypeConversion: '<S898>/Data Type Conversion6' */
14333 L4_MABX_B.DataTypeConversion6_ka = (L4_MABX_B.Shift_Arithmetic3_b != 0.0);
14334
14335 /* Outputs for Enabled SubSystem: '<S928>/VDC2_0B' incorporates:
14336 * EnablePort: '<S929>/Enable'
14337 */
14338 if (L4_MABX_B.DataTypeConversion6_ka) {
14339 /* S-Function (rti_commonblock): '<S929>/S-Function1' */
14340 /* This comment workarounds a code generation problem */
14341
14342 /* dSPACE RTICAN TX Message Block: "VDC2_0B" Id:418384139 */
14343 {
14344 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
14345
14346 Float32 delayTime = 0.0;
14347
14348 /* ... Read status and timestamp info (previous message) */
14349 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]);
14350
14351 /* Convert timestamp */
14352 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->processed) {
14353 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->timestamp =
14354 rtk_dsts_time_to_simtime_convert
14355 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->timestamp);
14356 }
14357
14358 /* Messages with timestamp zero have been received in pause/stop state
14359 and must not be handled.
14360 */
14361 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->timestamp > 0.0) {
14362 L4_MABX_B.SFunction1_o1_h = (real_T)
14363 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->processed;
14364 L4_MABX_B.SFunction1_o2_d = (real_T)
14365 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->timestamp;
14366 L4_MABX_B.SFunction1_o3_h = (real_T)
14367 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->deltatime;
14368 L4_MABX_B.SFunction1_o4_o = (real_T)
14369 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->delaytime;
14370 }
14371
14372 /* ... Encode Simulink signals of TX and RM blocks*/
14373 {
14374 rtican_Signal_t CAN_Sgn;
14375
14376 /* ...... "SteerWheelAngle" (0|16, standard signal, unsigned int, little endian) */
14377 /* Add or substract 0.5 in order to round to nearest integer */
14378 CAN_Sgn.UnsignedSgn = (UInt32) (( SteerWheelAngle - ( -31.374 ) ) /
14379 0.0009765625 + 0.5);
14380 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
14381 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
14382 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte1;
14383
14384 /* ...... "SteerWheelTurnCounter" (16|6, standard signal, unsigned int, little endian) */
14385 /* Add or substract 0.5 in order to round to nearest integer */
14386 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.SFunction1_o2_e1 - ( -32 ) +
14387 0.5);
14388 CAN_Sgn.UnsignedSgn &= 0x0000003F;
14389 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
14390
14391 /* ...... "SteerWheelAngleSensorType" (22|2, standard signal, unsigned int, little endian) */
14392 /* Add or substract 0.5 in order to round to nearest integer */
14393 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o3_ko ) + 0.5);
14394 CAN_Sgn.UnsignedSgn &= 0x00000003;
14395 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
14396 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
14397
14398 /* ...... "YawRate" (24|16, standard signal, unsigned int, little endian) */
14399 /* Add or substract 0.5 in order to round to nearest integer */
14400 CAN_Sgn.UnsignedSgn = (UInt32) (( YawRate - ( -3.92 ) ) /
14401 0.0001220703125 + 0.5);
14402 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
14403 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
14404 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte1;
14405
14406 /* ...... "LateralAcceleration" (40|16, standard signal, unsigned int, little endian) */
14407 /* Add or substract 0.5 in order to round to nearest integer */
14408 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o5_i - ( -15.687 )
14409 ) / 0.00048828125 + 0.5);
14410 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
14411 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
14412 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte1;
14413
14414 /* ...... "LongitudinalAcceleration" (56|8, standard signal, unsigned int, little endian) */
14415 /* Add or substract 0.5 in order to round to nearest integer */
14416 CAN_Sgn.UnsignedSgn = (UInt32) (( SPN1810_LongitudinalAcceleration -
14417 ( -12.5 ) ) / 0.1 + 0.5);
14418 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14419 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
14420 }
14421
14422 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
14423 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B], 8,
14424 &(CAN_Msg[0]), delayTime);
14425 }
14426 }
14427
14428 /* End of Outputs for SubSystem: '<S928>/VDC2_0B' */
14429
14430 /* S-Function (sfix_bitop): '<S922>/Operator' */
14431 L4_MABX_B.Operator_kb = (uint8_T)(L4_MABX_B.DataTypeConversion_dp &
14432 L4_MABX_P.Operator_BitMask_o2);
14433
14434 /* DataTypeConversion: '<S922>/DataType' */
14435 L4_MABX_B.DataType_gv = L4_MABX_B.Operator_kb;
14436
14437 /* S-Function (sfix_bitop): '<S923>/Operator' */
14438 L4_MABX_B.Operator_jr = (uint8_T)(L4_MABX_B.DataTypeConversion_dp &
14439 L4_MABX_P.Operator_BitMask_bw);
14440
14441 /* DataTypeConversion: '<S923>/DataType' */
14442 L4_MABX_B.DataType_n4 = L4_MABX_B.Operator_jr;
14443
14444 /* S-Function (sfix_bitop): '<S924>/Operator' */
14445 L4_MABX_B.Operator_jm = (uint8_T)(L4_MABX_B.DataTypeConversion_dp &
14446 L4_MABX_P.Operator_BitMask_jo);
14447
14448 /* DataTypeConversion: '<S924>/DataType' */
14449 L4_MABX_B.DataType_je = L4_MABX_B.Operator_jm;
14450
14451 /* S-Function (sfix_bitop): '<S925>/Operator' */
14452 L4_MABX_B.Operator_ag = (uint8_T)(L4_MABX_B.DataTypeConversion_dp &
14453 L4_MABX_P.Operator_BitMask_dg);
14454
14455 /* DataTypeConversion: '<S925>/DataType' */
14456 L4_MABX_B.DataType_mm = L4_MABX_B.Operator_ag;
14457
14458 /* S-Function (sfix_bitop): '<S927>/Operator' */
14459 L4_MABX_B.Operator_kd = (uint8_T)(L4_MABX_B.DataTypeConversion_dp &
14460 L4_MABX_P.Operator_BitMask_ek);
14461
14462 /* DataTypeConversion: '<S927>/DataType' */
14463 L4_MABX_B.DataType_ae = L4_MABX_B.Operator_kd;
14464
14465 /* DataTypeConversion: '<S898>/Data Type Conversion1' */
14466 L4_MABX_B.DataTypeConversion1_lrp = (L4_MABX_B.DataType_gv != 0);
14467
14468 /* ArithShift: '<S898>/Shift_Arithmetic ' */
14469 L4_MABX_B.Shift_Arithmetic_p = ldexp(L4_MABX_B.DataType_n4, (-1));
14470
14471 /* DataTypeConversion: '<S898>/Data Type Conversion3' */
14472 L4_MABX_B.DataTypeConversion3_di = (L4_MABX_B.Shift_Arithmetic_p != 0.0);
14473
14474 /* ArithShift: '<S898>/Shift_Arithmetic 1' */
14475 L4_MABX_B.Shift_Arithmetic1_l = ldexp(L4_MABX_B.DataType_je, (-2));
14476
14477 /* DataTypeConversion: '<S898>/Data Type Conversion4' */
14478 L4_MABX_B.DataTypeConversion4_dw = (L4_MABX_B.Shift_Arithmetic1_l != 0.0);
14479
14480 /* ArithShift: '<S898>/Shift_Arithmetic 2' */
14481 L4_MABX_B.Shift_Arithmetic2_i = ldexp(L4_MABX_B.DataType_mm, (-3));
14482
14483 /* DataTypeConversion: '<S898>/Data Type Conversion5' */
14484 L4_MABX_B.DataTypeConversion5_e1 = (L4_MABX_B.Shift_Arithmetic2_i != 0.0);
14485
14486 /* ArithShift: '<S898>/Shift_Arithmetic 4' */
14487 L4_MABX_B.Shift_Arithmetic4_h = ldexp(L4_MABX_B.DataType_ae, (-5));
14488
14489 /* DataTypeConversion: '<S898>/Data Type Conversion7' */
14490 L4_MABX_B.DataTypeConversion7_mv5 = (L4_MABX_B.Shift_Arithmetic4_h != 0.0);
14491
14492 /* Logic: '<S959>/Logical Operator1' */
14493 L4_MABX_B.LogicalOperator1_mg = !L4_MABX_B.Operator_MX;
14494
14495 /* Logic: '<S959>/Logical Operator' */
14496 L4_MABX_B.LogicalOperator_dp = (L4_MABX_B.LogicalOperator1_mg &&
14497 L4_MABX_B.Operator_MN);
14498
14499 /* RelationalOperator: '<S963>/Operator' */
14500 L4_MABX_B.Operator_ng = (L4_MABX_B.Switch1_hz == L4_MABX_B.Width_o);
14501
14502 /* End of Outputs for SubSystem: '<S804>/CAN_TX_10ms' */
14503
14504 /* Outputs for Atomic SubSystem: '<S804>/CAN_TX_20ms' */
14505
14506 /* RateTransition: '<S970>/TmpRTBAtDivide1Inport1' */
14507 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
14508 L4_MABX_B.BrakingPID_Y_b = L4_MABX_B.BrakingPID_Y_k;
14509 L4_MABX_B.AutonomousOutputEnabled_m = AutonomousOutputEnabled;
14510 L4_MABX_B.BrakingControlActive_g = L4_MABX_B.F_Brake_control_active;
14511 L4_MABX_B.TmpRTBAtLogicalOperator8Inport1 = AutonomousOutputEnabled;
14512 L4_MABX_B.TmpRTBAtLogicalOperator1Inport2 = AutonomousOutputEnabled;
14513 L4_MABX_B.TmpRTBAtUnit_DelayInport1 = AutonomousOutputEnabled;
14514 L4_MABX_B.BrakingPID_Y_bk = L4_MABX_B.BrakingPID_Y_k;
14515 L4_MABX_B.FrontAxleSpeed_h = L4_MABX_B.SFunction1_o1_c4;
14516 L4_MABX_B.SPN1807_SteeringWheelAngle_c = SteerWheelAngle;
14517 L4_MABX_B.SPN1808_YawRate_e = YawRate;
14518 L4_MABX_B.SPN1810_LongitudinalAccelerat_m = SPN1810_LongitudinalAcceleration;
14519 }
14520
14521 /* End of Outputs for SubSystem: '<S804>/CAN_TX_20ms' */
14522
14523 /* Outputs for Atomic SubSystem: '<S804>/CAN_TX_5000ms' */
14524
14525 /* RateTransition: '<S999>/TmpRTBAtOperatorInport2' */
14526 if (L4_MABX_M->Timing.RateInteraction.TID0_7 == 1) {
14527 L4_MABX_B.TmpRTBAtOperatorInport2 = AutonomousOutputEnabled;
14528 }
14529
14530 /* End of RateTransition: '<S999>/TmpRTBAtOperatorInport2' */
14531
14532 /* End of Outputs for SubSystem: '<S804>/CAN_TX_5000ms' */
14533
14534 /* Outputs for Enabled SubSystem: '<S622>/TC1_03_05' incorporates:
14535 * EnablePort: '<S623>/Enable'
14536 */
14537 /* Constant: '<S441>/Constant' */
14538 if (L4_MABX_P.Constant_Value_cx) {
14539 /* S-Function (rti_commonblock): '<S623>/S-Function1' */
14540 /* This comment workarounds a code generation problem */
14541
14542 /* dSPACE RTICAN RX Message Block: "TC1_03_05" Id:201392901 */
14543 {
14544 UInt32 *CAN_Msg;
14545 static dsfloat time_old = 0.0;
14546
14547 /* Read status and timestamp info (previous message) */
14548 if (can_type1_M3_C1_XTD[CANTP1_M3_C1_RXSRVC_XTD_0xC010305].timestamp !=
14549 time_old) {
14550 /* ... save timestamp info for the calculation of the RX status
14551 during the consecutive sample hit*/
14552 time_old = can_type1_M3_C1_XTD[CANTP1_M3_C1_RXSRVC_XTD_0xC010305].
14553 timestamp;
14554
14555 /* ... set the processed flag to one */
14556 L4_MABX_B.SFunction1_o26 = 1.0;
14557 L4_MABX_B.SFunction1_o27 = (real_T)
14558 can_type1_M3_C1_XTD[CANTP1_M3_C1_RXSRVC_XTD_0xC010305].timestamp;
14559 L4_MABX_B.SFunction1_o28 = (real_T)
14560 can_type1_M3_C1_XTD[CANTP1_M3_C1_RXSRVC_XTD_0xC010305].deltatime;
14561 CAN_Msg = can_type1_M3_C1_XTD[CANTP1_M3_C1_RXSRVC_XTD_0xC010305].data;
14562
14563 /* Decode CAN message */
14564 {
14565 {
14566 rtican_Signal_t CAN_Sgn;
14567
14568 /* ...... "SPN681_TransGearShiftInhibitReq" (0|2, standard signal, unsigned int, little endian) */
14569 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
14570 CAN_Sgn.UnsignedSgn &= 0x00000003;
14571 L4_MABX_B.SFunction1_o1_cn = ((real_T) CAN_Sgn.UnsignedSgn);
14572
14573 /* ...... "SPN682_TransTrqConvLockupDisReq" (2|2, standard signal, unsigned int, little endian) */
14574 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
14575 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
14576 CAN_Sgn.UnsignedSgn &= 0x00000003;
14577 L4_MABX_B.SFunction1_o2_p = ((real_T) CAN_Sgn.UnsignedSgn);
14578
14579 /* ...... "SPN683_DisengageDrivelineReq" (4|2, standard signal, unsigned int, little endian) */
14580 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
14581 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
14582 CAN_Sgn.UnsignedSgn &= 0x00000003;
14583 L4_MABX_B.SFunction1_o3_n1 = ((real_T) CAN_Sgn.UnsignedSgn);
14584
14585 /* ...... "SPN4242_TransRevGearShiftInhibRq" (6|2, standard signal, unsigned int, little endian) */
14586 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
14587 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
14588 CAN_Sgn.UnsignedSgn &= 0x00000003;
14589 L4_MABX_B.SFunction1_o4_p0 = ((real_T) CAN_Sgn.UnsignedSgn);
14590
14591 /* ...... "SPN684_RequestedPercClutchSlip" (8|8, standard signal, unsigned int, little endian) */
14592 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
14593 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14594 L4_MABX_B.SFunction1_o5_b = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
14595
14596 /* ...... "SPN525_TransRequestedGear" (16|8, standard signal, unsigned int, little endian) */
14597 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
14598 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14599 L4_MABX_B.SFunction1_o6_f = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn) );
14600
14601 /* ...... "SPN685_DisengageDiffLockRqFrAx1" (24|2, standard signal, unsigned int, little endian) */
14602 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
14603 CAN_Sgn.UnsignedSgn &= 0x00000003;
14604 L4_MABX_B.SFunction1_o7_i = ((real_T) CAN_Sgn.UnsignedSgn);
14605
14606 /* ...... "SPN686_DisengageDiffLockRqFrAx2" (26|2, standard signal, unsigned int, little endian) */
14607 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
14608 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
14609 CAN_Sgn.UnsignedSgn &= 0x00000003;
14610 L4_MABX_B.SFunction1_o8_c = ((real_T) CAN_Sgn.UnsignedSgn);
14611
14612 /* ...... "SPN687_DisengageDiffLockRqRrAx1" (28|2, standard signal, unsigned int, little endian) */
14613 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
14614 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
14615 CAN_Sgn.UnsignedSgn &= 0x00000003;
14616 L4_MABX_B.SFunction1_o9_e = ((real_T) CAN_Sgn.UnsignedSgn);
14617
14618 /* ...... "SPN688_DisengageDiffLockRqRrAx2" (30|2, standard signal, unsigned int, little endian) */
14619 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
14620 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
14621 CAN_Sgn.UnsignedSgn &= 0x00000003;
14622 L4_MABX_B.SFunction1_o10_a = ((real_T) CAN_Sgn.UnsignedSgn);
14623
14624 /* ...... "SPN689_DisengageDiffLockRqC" (32|2, standard signal, unsigned int, little endian) */
14625 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
14626 CAN_Sgn.UnsignedSgn &= 0x00000003;
14627 L4_MABX_B.SFunction1_o11 = ((real_T) CAN_Sgn.UnsignedSgn);
14628
14629 /* ...... "SPN690_DisengageDiffLockRqCF" (34|2, standard signal, unsigned int, little endian) */
14630 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
14631 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
14632 CAN_Sgn.UnsignedSgn &= 0x00000003;
14633 L4_MABX_B.SFunction1_o12 = ((real_T) CAN_Sgn.UnsignedSgn);
14634
14635 /* ...... "SPN691_DisengageDiffLockRqCR" (36|2, standard signal, unsigned int, little endian) */
14636 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
14637 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
14638 CAN_Sgn.UnsignedSgn &= 0x00000003;
14639 L4_MABX_B.SFunction1_o13 = ((real_T) CAN_Sgn.UnsignedSgn);
14640
14641 /* ...... "SPN5762_TransLoadRedInhibitRq" (38|2, standard signal, unsigned int, little endian) */
14642 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
14643 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
14644 CAN_Sgn.UnsignedSgn &= 0x00000003;
14645 L4_MABX_B.SFunction1_o14 = ((real_T) CAN_Sgn.UnsignedSgn);
14646
14647 /* ...... "SPN1852_TransmissionMode1" (40|2, standard signal, unsigned int, little endian) */
14648 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
14649 CAN_Sgn.UnsignedSgn &= 0x00000003;
14650 L4_MABX_B.SFunction1_o15 = ((real_T) CAN_Sgn.UnsignedSgn);
14651
14652 /* ...... "SPN1853_TransmissionMode2" (42|2, standard signal, unsigned int, little endian) */
14653 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
14654 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
14655 CAN_Sgn.UnsignedSgn &= 0x00000003;
14656 L4_MABX_B.SFunction1_o16 = ((real_T) CAN_Sgn.UnsignedSgn);
14657
14658 /* ...... "SPN1854_TransmissionMode3" (44|2, standard signal, unsigned int, little endian) */
14659 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
14660 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
14661 CAN_Sgn.UnsignedSgn &= 0x00000003;
14662 L4_MABX_B.SFunction1_o17 = ((real_T) CAN_Sgn.UnsignedSgn);
14663
14664 /* ...... "SPN1855_TransmissionMode4" (46|2, standard signal, unsigned int, little endian) */
14665 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
14666 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
14667 CAN_Sgn.UnsignedSgn &= 0x00000003;
14668 L4_MABX_B.SFunction1_o18 = ((real_T) CAN_Sgn.UnsignedSgn);
14669
14670 /* ...... "SPN7695_TransAutoNeutralRequest" (48|2, standard signal, unsigned int, little endian) */
14671 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
14672 CAN_Sgn.UnsignedSgn &= 0x00000003;
14673 L4_MABX_B.SFunction1_o19 = ((real_T) CAN_Sgn.UnsignedSgn);
14674
14675 /* ...... "SPN4255_TransRequestedLaunchGear" (50|4, standard signal, unsigned int, little endian) */
14676 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
14677 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
14678 CAN_Sgn.UnsignedSgn &= 0x0000000F;
14679 L4_MABX_B.SFunction1_o20 = ((real_T) CAN_Sgn.UnsignedSgn);
14680
14681 /* ...... "SPN2985_TransShiftSelDispModeSw" (54|2, standard signal, unsigned int, little endian) */
14682 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
14683 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
14684 CAN_Sgn.UnsignedSgn &= 0x00000003;
14685 L4_MABX_B.SFunction1_o21 = ((real_T) CAN_Sgn.UnsignedSgn);
14686
14687 /* ...... "SPN4246_TransmissionMode5" (56|2, standard signal, unsigned int, little endian) */
14688 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
14689 CAN_Sgn.UnsignedSgn &= 0x00000003;
14690 L4_MABX_B.SFunction1_o22 = ((real_T) CAN_Sgn.UnsignedSgn);
14691
14692 /* ...... "SPN4247_TransmissionMode6" (58|2, standard signal, unsigned int, little endian) */
14693 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
14694 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
14695 CAN_Sgn.UnsignedSgn &= 0x00000003;
14696 L4_MABX_B.SFunction1_o23 = ((real_T) CAN_Sgn.UnsignedSgn);
14697
14698 /* ...... "SPN4248_TransmissionMode7" (60|2, standard signal, unsigned int, little endian) */
14699 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
14700 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
14701 CAN_Sgn.UnsignedSgn &= 0x00000003;
14702 L4_MABX_B.SFunction1_o24 = ((real_T) CAN_Sgn.UnsignedSgn);
14703
14704 /* ...... "SPN4249_TransmissionMode8" (62|2, standard signal, unsigned int, little endian) */
14705 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
14706 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
14707 CAN_Sgn.UnsignedSgn &= 0x00000003;
14708 L4_MABX_B.SFunction1_o25 = ((real_T) CAN_Sgn.UnsignedSgn);
14709 }
14710 }
14711 } else {
14712 /* set RX status to 0 because no new message has arrived */
14713 L4_MABX_B.SFunction1_o26 = 0.0;
14714 }
14715 }
14716 }
14717
14718 /* End of Constant: '<S441>/Constant' */
14719 /* End of Outputs for SubSystem: '<S622>/TC1_03_05' */
14720
14721 /* Outputs for Atomic SubSystem: '<S804>/CAN_TX_50ms' */
14722
14723 /* RateTransition: '<S1009>/TmpRTBAtCCVS1_E3Inport1' */
14724 if (L4_MABX_M->Timing.RateInteraction.TID0_2 == 1) {
14725 L4_MABX_B.TwoSpeedAxleSwitch = L4_MABX_B.SFunction1_o1_kc;
14726 L4_MABX_B.ParkingBrakeSwitch = L4_MABX_B.SFunction1_o2_cc;
14727 L4_MABX_B.CruiseCtrlPauseSwitch = L4_MABX_B.SFunction1_o3_bu;
14728 L4_MABX_B.ParkBrakeReleaseInhibitRq = L4_MABX_B.SFunction1_o4_ku;
14729 L4_MABX_B.WheelBasedVehicleSpeed_j = WheelBasedVehicleSpeed;
14730 L4_MABX_B.CruiseCtrlActive = L4_MABX_B.SFunction1_o6_dq;
14731 L4_MABX_B.CruiseCtrlEnableSwitch_c = L4_MABX_B.SFunction1_o7_kr;
14732 L4_MABX_B.BrakeSwitch_d = BrakeSwitch;
14733 L4_MABX_B.ClutchSwitch = L4_MABX_B.SFunction1_o9_a;
14734 L4_MABX_B.CruiseCtrlSetSwitch = L4_MABX_B.SFunction1_o10_eg;
14735 L4_MABX_B.CruiseCtrlCoastSwitch = L4_MABX_B.SFunction1_o11_d;
14736 L4_MABX_B.CruiseCtrlResumeSwitch = L4_MABX_B.SFunction1_o12_d;
14737 L4_MABX_B.CruiseCtrlAccelerateSwitch = L4_MABX_B.SFunction1_o13_fk;
14738 L4_MABX_B.CruiseCtrlSetSpeed = L4_MABX_B.SFunction1_o14_m;
14739 L4_MABX_B.PTOGovernorState = L4_MABX_B.SFunction1_o15_p;
14740 L4_MABX_B.CruiseCtrlStates = L4_MABX_B.SFunction1_o16_c;
14741 L4_MABX_B.EngIdleIncrementSwitch = L4_MABX_B.SFunction1_o17_b;
14742 L4_MABX_B.EngIdleDecrementSwitch = L4_MABX_B.SFunction1_o18_d;
14743 L4_MABX_B.EngTestModeSwitch = L4_MABX_B.SFunction1_o19_c;
14744 L4_MABX_B.EngShutdownOverrideSwitch = L4_MABX_B.SFunction1_o20_o;
14745 L4_MABX_B.SPN681_TransGearShiftInhibitReq = L4_MABX_B.SFunction1_o1_cn;
14746 L4_MABX_B.SPN682_TransTrqConvLockupDisReq = L4_MABX_B.SFunction1_o2_p;
14747 L4_MABX_B.SPN683_DisengageDrivelineReq = L4_MABX_B.SFunction1_o3_n1;
14748 L4_MABX_B.SPN4242_TransRevGearShiftInhibR = L4_MABX_B.SFunction1_o4_p0;
14749 L4_MABX_B.SPN684_RequestedPercClutchSlip = L4_MABX_B.SFunction1_o5_b;
14750 L4_MABX_B.SPN525_TransRequestedGear = L4_MABX_B.SFunction1_o6_f;
14751 L4_MABX_B.SPN685_DisengageDiffLockRqFrAx1 = L4_MABX_B.SFunction1_o7_i;
14752 L4_MABX_B.SPN686_DisengageDiffLockRqFrAx2 = L4_MABX_B.SFunction1_o8_c;
14753 L4_MABX_B.SPN687_DisengageDiffLockRqRrAx1 = L4_MABX_B.SFunction1_o9_e;
14754 L4_MABX_B.SPN688_DisengageDiffLockRqRrAx2 = L4_MABX_B.SFunction1_o10_a;
14755 L4_MABX_B.SPN689_DisengageDiffLockRqC = L4_MABX_B.SFunction1_o11;
14756 L4_MABX_B.SPN690_DisengageDiffLockRqCF = L4_MABX_B.SFunction1_o12;
14757 L4_MABX_B.SPN691_DisengageDiffLockRqCR = L4_MABX_B.SFunction1_o13;
14758 L4_MABX_B.SPN5762_TransLoadRedInhibitRq = L4_MABX_B.SFunction1_o14;
14759 L4_MABX_B.SPN1852_TransmissionMode1 = L4_MABX_B.SFunction1_o15;
14760 L4_MABX_B.SPN1853_TransmissionMode2 = L4_MABX_B.SFunction1_o16;
14761 L4_MABX_B.SPN1854_TransmissionMode3 = L4_MABX_B.SFunction1_o17;
14762 L4_MABX_B.SPN1855_TransmissionMode4 = L4_MABX_B.SFunction1_o18;
14763 L4_MABX_B.SPN7695_TransAutoNeutralRequest = L4_MABX_B.SFunction1_o19;
14764 L4_MABX_B.SPN4255_TransRequestedLaunchGea = L4_MABX_B.SFunction1_o20;
14765 L4_MABX_B.SPN2985_TransShiftSelDispModeSw = L4_MABX_B.SFunction1_o21;
14766 L4_MABX_B.SPN4246_TransmissionMode5 = L4_MABX_B.SFunction1_o22;
14767 L4_MABX_B.SPN4247_TransmissionMode6 = L4_MABX_B.SFunction1_o23;
14768 L4_MABX_B.SPN4248_TransmissionMode7 = L4_MABX_B.SFunction1_o24;
14769 L4_MABX_B.SPN4249_TransmissionMode8 = L4_MABX_B.SFunction1_o25;
14770 }
14771
14772 /* End of Outputs for SubSystem: '<S804>/CAN_TX_50ms' */
14773
14774 /* Outputs for Enabled SubSystem: '<S620>/SystemTime_01' incorporates:
14775 * EnablePort: '<S621>/Enable'
14776 */
14777 /* Constant: '<S440>/Constant' */
14778 if (L4_MABX_P.Constant_Value_mg > 0.0) {
14779 /* S-Function (rti_commonblock): '<S621>/S-Function1' */
14780 /* This comment workarounds a code generation problem */
14781
14782 /* dSPACE RTICAN RX Message Block: "SystemTime_01" Id:233836544 */
14783 {
14784 UInt32 *CAN_Msg;
14785 static dsfloat time_old = 0.0;
14786
14787 /* Read status and timestamp info (previous message) */
14788 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0xDF01000].timestamp !=
14789 time_old) {
14790 /* ... save timestamp info for the calculation of the RX status
14791 during the consecutive sample hit*/
14792 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0xDF01000].
14793 timestamp;
14794
14795 /* ... set the processed flag to one */
14796 L4_MABX_B.SFunction1_o5_f = 1.0;
14797 L4_MABX_B.SFunction1_o6_h = (real_T)
14798 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0xDF01000].timestamp;
14799 L4_MABX_B.SFunction1_o7_li = (real_T)
14800 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0xDF01000].deltatime;
14801 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0xDF01000].data;
14802
14803 /* Decode CAN message */
14804 {
14805 {
14806 rtican_Signal_t CAN_Sgn;
14807
14808 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
14809 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
14810 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14811 L4_MABX_B.SFunction1_o1_i5 = ((real_T) CAN_Sgn.UnsignedSgn);
14812
14813 /* ...... "Source" (8|4, standard signal, unsigned int, little endian) */
14814 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
14815 CAN_Sgn.UnsignedSgn &= 0x0000000F;
14816 L4_MABX_B.SFunction1_o2_p1 = ((real_T) CAN_Sgn.UnsignedSgn);
14817
14818 /* ...... "Date" (16|16, standard signal, unsigned int, little endian) */
14819 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
14820 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
14821 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
14822 L4_MABX_B.SFunction1_o3_nm = ((real_T) CAN_Sgn.UnsignedSgn);
14823
14824 /* ...... "Time" (32|32, standard signal, unsigned int, little endian) */
14825 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
14826 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
14827 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[6];
14828 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[7];
14829 L4_MABX_B.SFunction1_o4_ki = 0.0001 * ( ((real_T)
14830 CAN_Sgn.UnsignedSgn) );
14831 }
14832 }
14833 } else {
14834 /* set RX status to 0 because no new message has arrived */
14835 L4_MABX_B.SFunction1_o5_f = 0.0;
14836 }
14837 }
14838 }
14839
14840 /* End of Constant: '<S440>/Constant' */
14841 /* End of Outputs for SubSystem: '<S620>/SystemTime_01' */
14842
14843 /* DataTypeConversion: '<S620>/Data Type Conversion8' */
14844 L4_MABX_B.RX_status_c = (L4_MABX_B.SFunction1_o5_f != 0.0);
14845
14846 /* Logic: '<S1023>/Operator' incorporates:
14847 * Constant: '<S1021>/Constant'
14848 */
14849 L4_MABX_B.Operator_jv = (L4_MABX_P.Constant_Value_fx && L4_MABX_B.RX_status_c);
14850
14851 /* DataTypeConversion: '<S1023>/DataType' */
14852 L4_MABX_B.DataType_em = L4_MABX_B.Operator_jv;
14853
14854 /* Outputs for Enabled SubSystem: '<S1022>/Std_SystemTime_01' incorporates:
14855 * EnablePort: '<S1024>/Enable'
14856 */
14857 if (L4_MABX_B.DataType_em) {
14858 /* S-Function (rti_commonblock): '<S1024>/S-Function1' incorporates:
14859 * Constant: '<S1022>/Constant'
14860 * Constant: '<S1022>/Constant1'
14861 */
14862 /* This comment workarounds a code generation problem */
14863
14864 /* dSPACE RTICAN TX Message Block: "Std_SystemTime_01" Id:5 */
14865 {
14866 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14867 0x00 };
14868
14869 Float32 delayTime = 0.0;
14870
14871 /* link this pointer to CAN_Msg for use in initialize_io_units() */
14872 CANTP1_PTR_M3_C2_STD_0x5 = &(CAN_Msg[0]);
14873
14874 /* ... perform loop-back if required */
14875 if (L4_MABX_P.Constant1_Value_h > 0.5) {
14876 /* ... updating the used tx-clientbuffer */
14877 can_tp1_msg_update_all( CANTP1_TX_M3_C2_MCRCLT_STD_0X5->module,
14878 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->queue );
14879
14880 /* ... Read status and timestamp info perform loop-back (previous message) */
14881 can_tp1_tx_msg_read_loopback(CANTP1_TX_M3_C2_MCRCLT_STD_0X5,
14882 8, // datalen
14883 &(CAN_Msg[0]),
14884 CANTP1_RX_SPMSG_M3_C2_STD);
14885
14886 /* Convert timestamp */
14887 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X5->processed) {
14888 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp =
14889 rtk_dsts_time_to_simtime_convert
14890 (CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp);
14891 }
14892 } else {
14893 /* ... Read status and timestamp info (previous message) */
14894 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M3_C2_MCRCLT_STD_0X5);
14895
14896 /* Convert timestamp */
14897 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X5->processed) {
14898 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp =
14899 rtk_dsts_time_to_simtime_convert
14900 (CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp);
14901 }
14902 }
14903
14904 /* Messages with timestamp zero have been received in pause/stop state
14905 and must not be handled.
14906 */
14907 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp > 0.0) {
14908 L4_MABX_B.SFunction1_o1_j = (real_T)
14909 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->processed;
14910 L4_MABX_B.SFunction1_o2_i4 = (real_T)
14911 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp;
14912 L4_MABX_B.SFunction1_o3 = (real_T)
14913 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->deltatime;
14914 L4_MABX_B.SFunction1_o4 = (real_T)
14915 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->delaytime;
14916 }
14917
14918 /* ... Encode Simulink signals of TX and RM blocks*/
14919 {
14920 rtican_Signal_t CAN_Sgn;
14921 UInt32 i;
14922
14923 /* Initialize the static message data to zero */
14924 for (i=0; i<8; i++ )
14925 CAN_Msg[i] = 0;
14926
14927 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
14928 /* Add or substract 0.5 in order to round to nearest integer */
14929 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o1_i5 ) + 0.5);
14930 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14931 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
14932
14933 /* ...... "Source" (8|4, standard signal, unsigned int, little endian) */
14934 /* Add or substract 0.5 in order to round to nearest integer */
14935 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o2_p1 ) + 0.5);
14936 CAN_Sgn.UnsignedSgn &= 0x0000000F;
14937 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
14938
14939 /* ...... "Date" (16|16, standard signal, unsigned int, little endian) */
14940 /* Add or substract 0.5 in order to round to nearest integer */
14941 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o3_nm ) + 0.5);
14942 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
14943 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
14944 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte1;
14945
14946 /* ...... "Time" (32|32, standard signal, unsigned int, little endian) */
14947 /* Add or substract 0.5 in order to round to nearest integer */
14948 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o4_ki - ( 0 ) ) /
14949 0.0001 + 0.5);
14950 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
14951 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte1;
14952 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte2;
14953 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte3;
14954 }
14955
14956 delayTime = (Float32) L4_MABX_P.Constant_Value_ot / (4000);
14957
14958 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
14959 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X5], 8, &(CAN_Msg[0]),
14960 delayTime);
14961 }
14962 }
14963
14964 /* End of Outputs for SubSystem: '<S1022>/Std_SystemTime_01' */
14965
14966 /* Constant: '<S1013>/Byte1' */
14967 L4_MABX_B.VectorConcatenate[0] = L4_MABX_P.Byte1_Value_c;
14968
14969 /* Constant: '<S1013>/Byte2' */
14970 L4_MABX_B.VectorConcatenate[1] = L4_MABX_P.Byte2_Value_j;
14971
14972 /* Constant: '<S1013>/Byte3' */
14973 L4_MABX_B.VectorConcatenate[2] = L4_MABX_P.Byte3_Value_k;
14974
14975 /* Constant: '<S1013>/Byte4' */
14976 L4_MABX_B.VectorConcatenate[3] = L4_MABX_P.Byte4_Value_f;
14977
14978 /* Constant: '<S1013>/Byte5' */
14979 L4_MABX_B.VectorConcatenate[4] = L4_MABX_P.Byte5_Value_m;
14980
14981 /* Constant: '<S1013>/Byte6' */
14982 L4_MABX_B.VectorConcatenate[5] = L4_MABX_P.Byte6_Value_a;
14983
14984 /* Constant: '<S1013>/Byte7' */
14985 L4_MABX_B.VectorConcatenate[6] = L4_MABX_P.Byte7_Value_f;
14986
14987 /* Constant: '<S1013>/Byte8' */
14988 L4_MABX_B.VectorConcatenate[7] = L4_MABX_P.Byte8_Value_n;
14989
14990 /* DataTypeConversion: '<S1017>/Data Type Conversion' */
14991 for (i = 0; i < 8; i++) {
14992 L4_MABX_B.DataTypeConversion[i] = L4_MABX_B.VectorConcatenate[i];
14993 }
14994
14995 /* End of DataTypeConversion: '<S1017>/Data Type Conversion' */
14996
14997 /* UnitDelay: '<S814>/Unit Delay2' */
14998 L4_MABX_B.UnitDelay2 = L4_MABX_DW.UnitDelay2_DSTATE;
14999
15000 /* Outputs for Triggered SubSystem: '<S1017>/CAN_TYPE1_TX_M1_C1' incorporates:
15001 * TriggerPort: '<S1019>/Trigger'
15002 */
15003 zcEvent = (L4_MABX_B.UnitDelay2 &&
15004 (L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE_g != POS_ZCSIG));
15005 if (zcEvent) {
15006 /* S-Function (rti_commonblock): '<S1019>/S-Function1' */
15007 /* This comment workarounds a code generation problem */
15008
15009 /* dSPACE RTICAN TX Message Block: "TX Message" Id:418184965 */
15010 {
15011 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
15012
15013 Float32 delayTime = 0.0;
15014
15015 /* ... Read status and timestamp info (previous message) */
15016 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]);
15017
15018 /* Convert timestamp */
15019 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->processed) {
15020 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->timestamp =
15021 rtk_dsts_time_to_simtime_convert
15022 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->timestamp);
15023 }
15024
15025 /* Messages with timestamp zero have been received in pause/stop state
15026 and must not be handled.
15027 */
15028 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->timestamp > 0.0) {
15029 L4_MABX_B.SFunction1_o1_b = (real_T)
15030 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->processed;
15031 L4_MABX_B.SFunction1_o2_g = (real_T)
15032 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->timestamp;
15033 L4_MABX_B.SFunction1_o3_d = (real_T)
15034 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->deltatime;
15035 L4_MABX_B.SFunction1_o4_g = (real_T)
15036 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->delaytime;
15037 }
15038
15039 /* ... Encode Simulink signals of TX and RM blocks*/
15040 {
15041 rtican_Signal_t CAN_Sgn;
15042
15043 /* ...... "Byte1" (0|8, standard signal, unsigned int, little endian) */
15044 /* Add or substract 0.5 in order to round to nearest integer */
15045 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[0] ) +
15046 0.5);
15047 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15048 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
15049
15050 /* ...... "Byte2" (8|8, standard signal, unsigned int, little endian) */
15051 /* Add or substract 0.5 in order to round to nearest integer */
15052 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[1] ) +
15053 0.5);
15054 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15055 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
15056
15057 /* ...... "Byte3" (16|8, standard signal, unsigned int, little endian) */
15058 /* Add or substract 0.5 in order to round to nearest integer */
15059 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[2] ) +
15060 0.5);
15061 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15062 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
15063
15064 /* ...... "Byte4" (24|8, standard signal, unsigned int, little endian) */
15065 /* Add or substract 0.5 in order to round to nearest integer */
15066 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[3] ) +
15067 0.5);
15068 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15069 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
15070
15071 /* ...... "Byte5" (32|8, standard signal, unsigned int, little endian) */
15072 /* Add or substract 0.5 in order to round to nearest integer */
15073 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[4] ) +
15074 0.5);
15075 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15076 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
15077
15078 /* ...... "Byte6" (40|8, standard signal, unsigned int, little endian) */
15079 /* Add or substract 0.5 in order to round to nearest integer */
15080 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[5] ) +
15081 0.5);
15082 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15083 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
15084
15085 /* ...... "Byte7" (48|8, standard signal, unsigned int, little endian) */
15086 /* Add or substract 0.5 in order to round to nearest integer */
15087 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[6] ) +
15088 0.5);
15089 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15090 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
15091
15092 /* ...... "Byte8" (56|8, standard signal, unsigned int, little endian) */
15093 /* Add or substract 0.5 in order to round to nearest integer */
15094 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[7] ) +
15095 0.5);
15096 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15097 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
15098 }
15099
15100 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
15101 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05], 8,
15102 &(CAN_Msg[0]), delayTime);
15103 }
15104 }
15105
15106 L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE_g = L4_MABX_B.UnitDelay2;
15107
15108 /* End of Outputs for SubSystem: '<S1017>/CAN_TYPE1_TX_M1_C1' */
15109
15110 /* UnitDelay: '<S814>/Unit Delay1' */
15111 L4_MABX_B.UnitDelay1_b = L4_MABX_DW.UnitDelay1_DSTATE_a;
15112
15113 /* MultiPortSwitch: '<S814>/Multiport Switch' incorporates:
15114 * Constant: '<S1015>/Byte1'
15115 * Constant: '<S1015>/Byte2'
15116 * Constant: '<S1015>/Byte3'
15117 * Constant: '<S1015>/Byte4'
15118 * Constant: '<S1015>/Byte5'
15119 * Constant: '<S1015>/Byte6'
15120 * Constant: '<S1015>/Byte7'
15121 * Constant: '<S1015>/Byte8'
15122 * Constant: '<S1016>/Byte1'
15123 * Constant: '<S1016>/Byte2'
15124 * Constant: '<S1016>/Byte3'
15125 * Constant: '<S1016>/Byte4'
15126 * Constant: '<S1016>/Byte5'
15127 * Constant: '<S1016>/Byte6'
15128 * Constant: '<S1016>/Byte7'
15129 * Constant: '<S1016>/Byte8'
15130 */
15131 if (L4_MABX_B.UnitDelay1_b == 1) {
15132 L4_MABX_B.VectorConcatenate_g[7] = L4_MABX_P.Byte8_Value_d;
15133 L4_MABX_B.VectorConcatenate_g[6] = L4_MABX_P.Byte7_Value_o;
15134 L4_MABX_B.VectorConcatenate_g[5] = L4_MABX_P.Byte6_Value_j;
15135 L4_MABX_B.VectorConcatenate_g[4] = L4_MABX_P.Byte5_Value_c;
15136 L4_MABX_B.VectorConcatenate_g[3] = L4_MABX_P.Byte4_Value_a;
15137 L4_MABX_B.VectorConcatenate_g[2] = L4_MABX_P.Byte3_Value_i;
15138 L4_MABX_B.VectorConcatenate_g[1] = L4_MABX_P.Byte2_Value_f;
15139 L4_MABX_B.VectorConcatenate_g[0] = L4_MABX_P.Byte1_Value_j;
15140 for (i = 0; i < 8; i++) {
15141 L4_MABX_B.MultiportSwitch_b[i] = L4_MABX_B.VectorConcatenate_g[i];
15142 }
15143 } else {
15144 L4_MABX_B.VectorConcatenate_f[7] = L4_MABX_P.Byte8_Value;
15145 L4_MABX_B.VectorConcatenate_f[6] = L4_MABX_P.Byte7_Value;
15146 L4_MABX_B.VectorConcatenate_f[5] = L4_MABX_P.Byte6_Value;
15147 L4_MABX_B.VectorConcatenate_f[4] = L4_MABX_P.Byte5_Value;
15148 L4_MABX_B.VectorConcatenate_f[3] = L4_MABX_P.Byte4_Value;
15149 L4_MABX_B.VectorConcatenate_f[2] = L4_MABX_P.Byte3_Value;
15150 L4_MABX_B.VectorConcatenate_f[1] = L4_MABX_P.Byte2_Value;
15151 L4_MABX_B.VectorConcatenate_f[0] = L4_MABX_P.Byte1_Value;
15152 for (i = 0; i < 8; i++) {
15153 L4_MABX_B.MultiportSwitch_b[i] = L4_MABX_B.VectorConcatenate_f[i];
15154 }
15155 }
15156
15157 /* End of MultiPortSwitch: '<S814>/Multiport Switch' */
15158
15159 /* DataTypeConversion: '<S1018>/Data Type Conversion' */
15160 for (i = 0; i < 8; i++) {
15161 L4_MABX_B.DataTypeConversion_a[i] = L4_MABX_B.MultiportSwitch_b[i];
15162 }
15163
15164 /* End of DataTypeConversion: '<S1018>/Data Type Conversion' */
15165
15166 /* UnitDelay: '<S814>/Unit Delay3' */
15167 L4_MABX_B.UnitDelay3 = L4_MABX_DW.UnitDelay3_DSTATE;
15168
15169 /* Outputs for Triggered SubSystem: '<S1018>/CAN_TYPE1_TX_M1_C1' incorporates:
15170 * TriggerPort: '<S1020>/Trigger'
15171 */
15172 zcEvent = (L4_MABX_B.UnitDelay3 &&
15173 (L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE != POS_ZCSIG));
15174 if (zcEvent) {
15175 /* S-Function (rti_commonblock): '<S1020>/S-Function1' */
15176 /* This comment workarounds a code generation problem */
15177
15178 /* dSPACE RTICAN TX Message Block: "TX Message" Id:418119429 */
15179 {
15180 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
15181
15182 Float32 delayTime = 0.0;
15183
15184 /* ... Read status and timestamp info (previous message) */
15185 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]);
15186
15187 /* Convert timestamp */
15188 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->processed) {
15189 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->timestamp =
15190 rtk_dsts_time_to_simtime_convert
15191 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->timestamp);
15192 }
15193
15194 /* Messages with timestamp zero have been received in pause/stop state
15195 and must not be handled.
15196 */
15197 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->timestamp > 0.0) {
15198 L4_MABX_B.SFunction1_o1_c = (real_T)
15199 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->processed;
15200 L4_MABX_B.SFunction1_o2_f = (real_T)
15201 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->timestamp;
15202 L4_MABX_B.SFunction1_o3_g = (real_T)
15203 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->deltatime;
15204 L4_MABX_B.SFunction1_o4_m = (real_T)
15205 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->delaytime;
15206 }
15207
15208 /* ... Encode Simulink signals of TX and RM blocks*/
15209 {
15210 rtican_Signal_t CAN_Sgn;
15211
15212 /* ...... "Byte1" (0|8, standard signal, unsigned int, little endian) */
15213 /* Add or substract 0.5 in order to round to nearest integer */
15214 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_a[0] ) +
15215 0.5);
15216 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15217 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
15218
15219 /* ...... "Byte2" (8|8, standard signal, unsigned int, little endian) */
15220 /* Add or substract 0.5 in order to round to nearest integer */
15221 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_a[1] ) +
15222 0.5);
15223 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15224 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
15225
15226 /* ...... "Byte3" (16|8, standard signal, unsigned int, little endian) */
15227 /* Add or substract 0.5 in order to round to nearest integer */
15228 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_a[2] ) +
15229 0.5);
15230 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15231 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
15232
15233 /* ...... "Byte4" (24|8, standard signal, unsigned int, little endian) */
15234 /* Add or substract 0.5 in order to round to nearest integer */
15235 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_a[3] ) +
15236 0.5);
15237 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15238 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
15239
15240 /* ...... "Byte5" (32|8, standard signal, unsigned int, little endian) */
15241 /* Add or substract 0.5 in order to round to nearest integer */
15242 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_a[4] ) +
15243 0.5);
15244 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15245 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
15246
15247 /* ...... "Byte6" (40|8, standard signal, unsigned int, little endian) */
15248 /* Add or substract 0.5 in order to round to nearest integer */
15249 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_a[5] ) +
15250 0.5);
15251 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15252 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
15253
15254 /* ...... "Byte7" (48|8, standard signal, unsigned int, little endian) */
15255 /* Add or substract 0.5 in order to round to nearest integer */
15256 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_a[6] ) +
15257 0.5);
15258 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15259 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
15260
15261 /* ...... "Byte8" (56|8, standard signal, unsigned int, little endian) */
15262 /* Add or substract 0.5 in order to round to nearest integer */
15263 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_a[7] ) +
15264 0.5);
15265 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15266 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
15267 }
15268
15269 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
15270 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05], 8,
15271 &(CAN_Msg[0]), delayTime);
15272 }
15273 }
15274
15275 L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE = L4_MABX_B.UnitDelay3;
15276
15277 /* End of Outputs for SubSystem: '<S1018>/CAN_TYPE1_TX_M1_C1' */
15278
15279 /* Chart: '<S814>/Chart' incorporates:
15280 * Constant: '<S814>/Constant1'
15281 */
15282 if (L4_MABX_DW.temporalCounter_i1_a < 255U) {
15283 L4_MABX_DW.temporalCounter_i1_a++;
15284 }
15285
15286 /* Gateway: OUTPUTS_PIC_KW/CAN_Out_PIC_KW/CAN_TX_BAM/Chart */
15287 /* During: OUTPUTS_PIC_KW/CAN_Out_PIC_KW/CAN_TX_BAM/Chart */
15288 if (L4_MABX_DW.is_active_c4_SUB_ECU_L4_MABX_HW == 0U) {
15289 /* Entry: OUTPUTS_PIC_KW/CAN_Out_PIC_KW/CAN_TX_BAM/Chart */
15290 L4_MABX_DW.is_active_c4_SUB_ECU_L4_MABX_HW = 1U;
15291
15292 /* Entry Internal: OUTPUTS_PIC_KW/CAN_Out_PIC_KW/CAN_TX_BAM/Chart */
15293 /* Transition: '<S1014>:4' */
15294 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_Init_l;
15295
15296 /* Entry 'Init': '<S1014>:1' */
15297 L4_MABX_B.State = 0U;
15298 L4_MABX_B.enTPCM = false;
15299 L4_MABX_B.enTPDT = false;
15300 L4_MABX_B.TPCM_ts_Prev = L4_MABX_B.SFunction1_o2_g;
15301 L4_MABX_B.TPDT_ts_Prev = L4_MABX_B.SFunction1_o2_f;
15302 L4_MABX_B.TPDT_count = 0U;
15303 } else {
15304 switch (L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf) {
15305 case L4_MABX_IN_CheckPacketCount:
15306 L4_MABX_B.State = 6U;
15307
15308 /* During 'CheckPacketCount': '<S1014>:11' */
15309 if (L4_MABX_B.TPDT_count <= L4_MABX_P.Constant1_Value_kd) {
15310 /* Transition: '<S1014>:18' */
15311 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SendTPDT;
15312 L4_MABX_DW.temporalCounter_i1_a = 0U;
15313
15314 /* Entry 'SendTPDT': '<S1014>:6' */
15315 L4_MABX_B.State = 4U;
15316 L4_MABX_B.enTPDT = true;
15317 } else {
15318 /* Transition: '<S1014>:19' */
15319 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf =
15320 L4_MABX_IN_WaitForNextPeriod;
15321 L4_MABX_DW.temporalCounter_i1_a = 0U;
15322
15323 /* Entry 'WaitForNextPeriod': '<S1014>:17' */
15324 L4_MABX_B.State = 7U;
15325 }
15326 break;
15327
15328 case L4_MABX_IN_Init_l:
15329 /* During 'Init': '<S1014>:1' */
15330 /* Transition: '<S1014>:9' */
15331 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_StartMsg;
15332
15333 /* Entry 'StartMsg': '<S1014>:30' */
15334 L4_MABX_B.State = 1U;
15335 L4_MABX_B.TPDT_count = 1U;
15336 break;
15337
15338 case L4_MABX_IN_InterframeDelay:
15339 L4_MABX_B.State = 3U;
15340
15341 /* During 'InterframeDelay': '<S1014>:7' */
15342 if (L4_MABX_DW.temporalCounter_i1_a >= 5U) {
15343 /* Transition: '<S1014>:10' */
15344 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SendTPDT;
15345 L4_MABX_DW.temporalCounter_i1_a = 0U;
15346
15347 /* Entry 'SendTPDT': '<S1014>:6' */
15348 L4_MABX_B.State = 4U;
15349 L4_MABX_B.enTPDT = true;
15350 }
15351 break;
15352
15353 case L4_MABX_IN_InterframeDelay1:
15354 L4_MABX_B.State = 5U;
15355
15356 /* During 'InterframeDelay1': '<S1014>:12' */
15357 if (L4_MABX_DW.temporalCounter_i1_a >= 5U) {
15358 /* Transition: '<S1014>:14' */
15359 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_CheckPacketCount;
15360
15361 /* Entry 'CheckPacketCount': '<S1014>:11' */
15362 L4_MABX_B.State = 6U;
15363 i = (int32_T)(L4_MABX_B.TPDT_count + 1U);
15364 if ((uint32_T)i > 255U) {
15365 i = 255;
15366 }
15367
15368 L4_MABX_B.TPDT_count = (uint8_T)i;
15369 }
15370 break;
15371
15372 case L4_MABX_IN_SendTPCM:
15373 L4_MABX_B.State = 2U;
15374
15375 /* During 'SendTPCM': '<S1014>:5' */
15376 if (L4_MABX_DW.temporalCounter_i1_a >= 1U) {
15377 /* Transition: '<S1014>:8' */
15378 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_InterframeDelay;
15379 L4_MABX_DW.temporalCounter_i1_a = 0U;
15380
15381 /* Entry 'InterframeDelay': '<S1014>:7' */
15382 L4_MABX_B.State = 3U;
15383 L4_MABX_B.enTPCM = false;
15384 L4_MABX_B.TPCM_ts_Prev = L4_MABX_B.SFunction1_o2_g;
15385 }
15386 break;
15387
15388 case L4_MABX_IN_SendTPDT:
15389 L4_MABX_B.State = 4U;
15390
15391 /* During 'SendTPDT': '<S1014>:6' */
15392 if (L4_MABX_DW.temporalCounter_i1_a >= 1U) {
15393 /* Transition: '<S1014>:13' */
15394 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_InterframeDelay1;
15395 L4_MABX_DW.temporalCounter_i1_a = 0U;
15396
15397 /* Entry 'InterframeDelay1': '<S1014>:12' */
15398 L4_MABX_B.State = 5U;
15399 L4_MABX_B.enTPDT = false;
15400 L4_MABX_B.TPDT_ts_Prev = L4_MABX_B.SFunction1_o2_f;
15401 }
15402 break;
15403
15404 case L4_MABX_IN_StartMsg:
15405 /* During 'StartMsg': '<S1014>:30' */
15406 /* Transition: '<S1014>:31' */
15407 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SendTPCM;
15408 L4_MABX_DW.temporalCounter_i1_a = 0U;
15409
15410 /* Entry 'SendTPCM': '<S1014>:5' */
15411 L4_MABX_B.State = 2U;
15412 L4_MABX_B.enTPCM = true;
15413 break;
15414
15415 default:
15416 L4_MABX_B.State = 7U;
15417
15418 /* During 'WaitForNextPeriod': '<S1014>:17' */
15419 if (L4_MABX_DW.temporalCounter_i1_a >= 185U) {
15420 /* Transition: '<S1014>:20' */
15421 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_StartMsg;
15422
15423 /* Entry 'StartMsg': '<S1014>:30' */
15424 L4_MABX_B.State = 1U;
15425 L4_MABX_B.TPDT_count = 1U;
15426 }
15427 break;
15428 }
15429 }
15430
15431 /* End of Chart: '<S814>/Chart' */
15432
15433 /* RelationalOperator: '<S1042>/Operator' incorporates:
15434 * Constant: '<S1033>/Constant2'
15435 */
15436 L4_MABX_B.Operator_ab = (L4_MABX_P.Constant2_Value_fk == MABX_Mode);
15437
15438 /* Logic: '<S1033>/Logical Operator2' */
15439 L4_MABX_B.LogicalOperator2_c = !L4_MABX_B.Operator_ab;
15440
15441 /* S-Function (rti_commonblock): '<S1025>/S-Function1' */
15442 /* This comment workarounds a code generation problem */
15443
15444 /* write output state value to digital output channel 4 on port 1 */
15445 dio_tp4_digout_write(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH4, (UInt16)
15446 (L4_MABX_B.LogicalOperator2_c << 3));
15447
15448 /* RateTransition: '<S1033>/TmpRTBAtANDInport1' */
15449 if (L4_MABX_M->Timing.RateInteraction.TID0_3 == 1) {
15450 L4_MABX_B.TmpRTBAtANDInport1 = L4_MABX_DW.TmpRTBAtANDInport1_Buffer0;
15451 }
15452
15453 /* End of RateTransition: '<S1033>/TmpRTBAtANDInport1' */
15454
15455 /* Logic: '<S1033>/AND' */
15456 L4_MABX_B.AND = ((L4_MABX_B.TmpRTBAtANDInport1 != 0.0) && AutonomousEnabled);
15457
15458 /* Logic: '<S1033>/OR' */
15459 L4_MABX_B.OR = (AutonomousOutputEnabled || L4_MABX_B.AND);
15460
15461 /* Logic: '<S1033>/Logical Operator4' */
15462 L4_MABX_B.LogicalOperator4_k = !L4_MABX_B.OR;
15463
15464 /* S-Function (rti_commonblock): '<S1026>/S-Function1' */
15465 /* This comment workarounds a code generation problem */
15466
15467 /* write output state value to digital output channel 2 on port 1 */
15468 dio_tp4_digout_write(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH2, (UInt16)
15469 (L4_MABX_B.LogicalOperator4_k << 1));
15470
15471 /* Logic: '<S1033>/Logical Operator1' */
15472 L4_MABX_B.LogicalOperator1_l = !EnableSw;
15473
15474 /* S-Function (rti_commonblock): '<S1027>/S-Function1' */
15475 /* This comment workarounds a code generation problem */
15476
15477 /* write output state value to digital output channel 1 on port 1 */
15478 dio_tp4_digout_write(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH1, (UInt16)
15479 (L4_MABX_B.LogicalOperator1_l << 0));
15480
15481 /* RelationalOperator: '<S1041>/Operator' incorporates:
15482 * Constant: '<S1033>/Constant3'
15483 */
15484 L4_MABX_B.Operator_fk = (L4_MABX_P.Constant3_Value_g1 == SupervisorMode);
15485
15486 /* Logic: '<S1033>/Logical Operator3' */
15487 L4_MABX_B.LogicalOperator3_l = !L4_MABX_B.Operator_fk;
15488
15489 /* S-Function (rti_commonblock): '<S1028>/S-Function1' */
15490 /* This comment workarounds a code generation problem */
15491
15492 /* write output state value to digital output channel 3 on port 1 */
15493 dio_tp4_digout_write(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH3, (UInt16)
15494 (L4_MABX_B.LogicalOperator3_l << 2));
15495
15496 /* Logic: '<S1031>/Logical Operator' */
15497 L4_MABX_B.LogicalOperator_lj = !AutonomousOutputEnabled;
15498
15499 /* Outputs for Atomic SubSystem: '<S1031>/If_Then_Else4' */
15500
15501 /* Constant: '<S1031>/APTC_PEDAL_A_PWM_FREQ_HZ_APV' */
15502 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_lj,
15503 L4_MABX_B.Pedal_1_pwm_freq_raw_value,
15504 L4_MABX_P.APTC_PEDAL_A_PWM_FREQ_HZ_APV_Va,
15505 &L4_MABX_B.If_Then_Else4);
15506
15507 /* End of Outputs for SubSystem: '<S1031>/If_Then_Else4' */
15508
15509 /* MinMax: '<S805>/MinMax' incorporates:
15510 * Constant: '<S805>/Constant2'
15511 */
15512 DeltaTime = L4_MABX_B.If_Then_Else4.Switch;
15513 PositionFinalLimited = L4_MABX_P.Constant2_Value_p5;
15514 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
15515 PositionFinalLimited = DeltaTime;
15516 }
15517
15518 L4_MABX_B.MinMax_i = PositionFinalLimited;
15519
15520 /* End of MinMax: '<S805>/MinMax' */
15521
15522 /* DataTypeConversion: '<S805>/Data Type Conversion1' */
15523 L4_MABX_B.DataTypeConversion1 = L4_MABX_B.MinMax_i;
15524
15525 /* Product: '<S805>/Divide' incorporates:
15526 * Constant: '<S805>/Constant3'
15527 */
15528 L4_MABX_B.Divide_j = L4_MABX_P.Constant3_Value_jm /
15529 L4_MABX_B.DataTypeConversion1;
15530
15531 /* DataTypeConversion: '<S805>/Data Type Conversion5' */
15532 L4_MABX_B.PWMOut_P2C1_Period = L4_MABX_B.Divide_j;
15533
15534 /* Lookup_n-D: '<S1031>/1-D Lookup Table2' */
15535 L4_MABX_B.PedalPWMA_DC_out = look1_binlcapw(L4_MABX_B.If_Then_Else_f.Switch,
15536 L4_MABX_P.uDLookupTable2_bp01Data, L4_MABX_P.uDLookupTable2_tableData, 1U);
15537
15538 /* Outputs for Atomic SubSystem: '<S1031>/If_Then_Else1' */
15539 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_lj,
15540 L4_MABX_B.Pedal_1_pwm_dc_raw_value,
15541 L4_MABX_B.PedalPWMA_DC_out, &L4_MABX_B.If_Then_Else1_f);
15542
15543 /* End of Outputs for SubSystem: '<S1031>/If_Then_Else1' */
15544
15545 /* Gain: '<S805>/Gain1' */
15546 L4_MABX_B.Gain1_n = L4_MABX_P.Gain1_Gain_l * L4_MABX_B.If_Then_Else1_f.Switch;
15547
15548 /* DataTypeConversion: '<S805>/Data Type Conversion6' */
15549 L4_MABX_B.PWMOut_P2C1_DC = L4_MABX_B.Gain1_n;
15550
15551 /* S-Function (rti_commonblock): '<S1029>/S-Function1' */
15552 /* This comment workarounds a code generation problem */
15553
15554 /* write PWM Period and DutyCycle for output channel 1 on port 2 */
15555 dio_tp4_pwm_update(DIO_TP4_1_MODULE_ADDR , 2, 1, (real_T)
15556 L4_MABX_B.PWMOut_P2C1_Period, (real_T)
15557 L4_MABX_B.PWMOut_P2C1_DC);
15558
15559 /* Outputs for Atomic SubSystem: '<S1031>/If_Then_Else5' */
15560
15561 /* Constant: '<S1031>/APTC_PEDAL_B_PWM_FREQ_HZ_APV' */
15562 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_lj,
15563 L4_MABX_B.Pedal_2_pwm_freq_raw_value,
15564 L4_MABX_P.APTC_PEDAL_B_PWM_FREQ_HZ_APV_Va,
15565 &L4_MABX_B.If_Then_Else5);
15566
15567 /* End of Outputs for SubSystem: '<S1031>/If_Then_Else5' */
15568
15569 /* MinMax: '<S805>/MinMax1' incorporates:
15570 * Constant: '<S805>/Constant4'
15571 */
15572 DeltaTime = L4_MABX_B.If_Then_Else5.Switch;
15573 PositionFinalLimited = L4_MABX_P.Constant4_Value_ad;
15574 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
15575 PositionFinalLimited = DeltaTime;
15576 }
15577
15578 L4_MABX_B.MinMax1_j = PositionFinalLimited;
15579
15580 /* End of MinMax: '<S805>/MinMax1' */
15581
15582 /* DataTypeConversion: '<S805>/Data Type Conversion2' */
15583 L4_MABX_B.DataTypeConversion2_f = L4_MABX_B.MinMax1_j;
15584
15585 /* Product: '<S805>/Divide1' incorporates:
15586 * Constant: '<S805>/Constant1'
15587 */
15588 L4_MABX_B.Divide1 = L4_MABX_P.Constant1_Value_gg /
15589 L4_MABX_B.DataTypeConversion2_f;
15590
15591 /* DataTypeConversion: '<S805>/Data Type Conversion9' */
15592 L4_MABX_B.PWMOut_P2C2_Period = L4_MABX_B.Divide1;
15593
15594 /* Lookup_n-D: '<S1031>/1-D Lookup Table3' */
15595 L4_MABX_B.PedalPWMB_DC_out = look1_binlcapw(L4_MABX_B.If_Then_Else_f.Switch,
15596 L4_MABX_P.uDLookupTable3_bp01Data, L4_MABX_P.uDLookupTable3_tableData, 1U);
15597
15598 /* Outputs for Atomic SubSystem: '<S1031>/If_Then_Else2' */
15599 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_lj,
15600 L4_MABX_B.Pedal_2_pwm_dc_raw_value,
15601 L4_MABX_B.PedalPWMB_DC_out, &L4_MABX_B.If_Then_Else2_l);
15602
15603 /* End of Outputs for SubSystem: '<S1031>/If_Then_Else2' */
15604
15605 /* Gain: '<S805>/Gain' */
15606 L4_MABX_B.Gain_f = L4_MABX_P.Gain_Gain_o * L4_MABX_B.If_Then_Else2_l.Switch;
15607
15608 /* DataTypeConversion: '<S805>/Data Type Conversion10' */
15609 L4_MABX_B.PWMOut_P2C2_DC = L4_MABX_B.Gain_f;
15610
15611 /* S-Function (rti_commonblock): '<S1030>/S-Function1' */
15612 /* This comment workarounds a code generation problem */
15613
15614 /* write PWM Period and DutyCycle for output channel 2 on port 2 */
15615 dio_tp4_pwm_update(DIO_TP4_1_MODULE_ADDR , 2, 2, (real_T)
15616 L4_MABX_B.PWMOut_P2C2_Period, (real_T)
15617 L4_MABX_B.PWMOut_P2C2_DC);
15618
15619 /* S-Function (rti_commonblock): '<S712>/S-Function1' */
15620 /* This comment workarounds a code generation problem */
15621
15622 /* Gain: '<S402>/ShifterControlDC' */
15623 L4_MABX_B.ShiftControlDC = L4_MABX_P.ShifterControlDC_Gain *
15624 L4_MABX_B.SFunction1_o2_i;
15625
15626 /* RelationalOperator: '<S1032>/Relational Operator' incorporates:
15627 * Constant: '<S1032>/Constant'
15628 */
15629 L4_MABX_B.RelationalOperator_p = (L4_MABX_B.ShiftControlDC >=
15630 L4_MABX_P.Constant_Value_kt);
15631
15632 /* RelationalOperator: '<S1032>/Relational Operator1' incorporates:
15633 * Constant: '<S1032>/Constant1'
15634 */
15635 L4_MABX_B.RelationalOperator1_nt = (L4_MABX_B.ShiftControlDC <=
15636 L4_MABX_P.Constant1_Value_do);
15637
15638 /* Logic: '<S1032>/Logical Operator' */
15639 L4_MABX_B.LogicalOperator_dv = (L4_MABX_B.RelationalOperator_p &&
15640 L4_MABX_B.RelationalOperator1_nt);
15641
15642 /* RelationalOperator: '<S1038>/Compare' incorporates:
15643 * Constant: '<S1038>/Constant'
15644 */
15645 L4_MABX_B.Compare_nw = (L4_MABX_B.SPN524_TransSelectedGear ==
15646 L4_MABX_P.Constant_Value_ek);
15647
15648 /* RelationalOperator: '<S1039>/Compare' incorporates:
15649 * Constant: '<S1039>/Constant'
15650 */
15651 L4_MABX_B.Compare_g = (L4_MABX_B.SPN523_TransCurrentGear ==
15652 L4_MABX_P.Constant_Value_ji);
15653
15654 /* Logic: '<S1032>/Logical Operator1' */
15655 L4_MABX_B.LogicalOperator1_g = (L4_MABX_B.Compare_nw && L4_MABX_B.Compare_g);
15656
15657 /* Outputs for Atomic SubSystem: '<S1032>/If_Then_Else' */
15658
15659 /* Constant: '<S1032>/F_ALLOW_ETC2_FOR_NEUTRAL_OUTPUT_APV' incorporates:
15660 * Constant: '<S1032>/Constant2'
15661 */
15662 L4_MABX_If_Then_Else3(L4_MABX_P.F_ALLOW_ETC2_FOR_NEUTRAL_OUTPUT,
15663 L4_MABX_B.LogicalOperator1_g,
15664 L4_MABX_P.Constant2_Value_mf, &L4_MABX_B.If_Then_Else_ms);
15665
15666 /* End of Outputs for SubSystem: '<S1032>/If_Then_Else' */
15667
15668 /* Logic: '<S1032>/Logical Operator2' */
15669 L4_MABX_B.Neutral = (L4_MABX_B.LogicalOperator_dv ||
15670 L4_MABX_B.If_Then_Else_ms.Switch);
15671
15672 /* Logic: '<S805>/Logical Operator' */
15673 L4_MABX_B.LogicalOperator_k = !L4_MABX_B.Neutral;
15674
15675 /* Outputs for Enabled SubSystem: '<S559>/GNSSDOPs_011' incorporates:
15676 * EnablePort: '<S560>/Enable'
15677 */
15678 /* Constant: '<S427>/Constant' */
15679 if (L4_MABX_P.Constant_Value_jo > 0.0) {
15680 /* S-Function (rti_commonblock): '<S560>/S-Function1' */
15681 /* This comment workarounds a code generation problem */
15682
15683 /* dSPACE RTICAN RX Message Block: "GNSSDOPs_01" Id:435815168 */
15684 {
15685 UInt32 *CAN_Msg;
15686 static dsfloat time_old = 0.0;
15687
15688 /* Read status and timestamp info (previous message) */
15689 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0300].timestamp !=
15690 time_old) {
15691 /* ... save timestamp info for the calculation of the RX status
15692 during the consecutive sample hit*/
15693 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0300].
15694 timestamp;
15695
15696 /* ... set the processed flag to one */
15697 L4_MABX_B.SFunction1_o7_ob = 1.0;
15698 L4_MABX_B.SFunction1_o8_h0 = (real_T)
15699 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0300].timestamp;
15700 L4_MABX_B.SFunction1_o9_nr = (real_T)
15701 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0300].deltatime;
15702 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0300].data;
15703
15704 /* Decode CAN message */
15705 {
15706 {
15707 rtican_Signal_t CAN_Sgn;
15708
15709 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
15710 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
15711 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15712 L4_MABX_B.SFunction1_o1_hz = ((real_T) CAN_Sgn.UnsignedSgn);
15713
15714 /* ...... "SetMode" (8|3, standard signal, unsigned int, little endian) */
15715 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
15716 CAN_Sgn.UnsignedSgn &= 0x00000007;
15717 L4_MABX_B.SFunction1_o2_a5 = ((real_T) CAN_Sgn.UnsignedSgn);
15718
15719 /* ...... "OpMode" (11|3, standard signal, unsigned int, little endian) */
15720 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
15721 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 3;
15722 CAN_Sgn.UnsignedSgn &= 0x00000007;
15723 L4_MABX_B.SFunction1_o3_i = ((real_T) CAN_Sgn.UnsignedSgn);
15724
15725 /* ...... "HDOP_" (16|16, standard signal, signed int, little endian) */
15726 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
15727 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
15728 CAN_Sgn.SignedSgn &= 0x0000FFFF;
15729 if (CAN_Sgn.SignedSgn >> 15) {
15730 CAN_Sgn.SignedSgn |= 0xFFFF0000;
15731 }
15732
15733 L4_MABX_B.SFunction1_o4_h5 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
15734
15735 /* ...... "VDOP" (32|16, standard signal, signed int, little endian) */
15736 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
15737 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
15738 CAN_Sgn.SignedSgn &= 0x0000FFFF;
15739 if (CAN_Sgn.SignedSgn >> 15) {
15740 CAN_Sgn.SignedSgn |= 0xFFFF0000;
15741 }
15742
15743 L4_MABX_B.SFunction1_o5_gi = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
15744
15745 /* ...... "TDOP" (48|16, standard signal, signed int, little endian) */
15746 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
15747 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[7];
15748 CAN_Sgn.SignedSgn &= 0x0000FFFF;
15749 if (CAN_Sgn.SignedSgn >> 15) {
15750 CAN_Sgn.SignedSgn |= 0xFFFF0000;
15751 }
15752
15753 L4_MABX_B.SFunction1_o6_d = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
15754 }
15755 }
15756 } else {
15757 /* set RX status to 0 because no new message has arrived */
15758 L4_MABX_B.SFunction1_o7_ob = 0.0;
15759 }
15760 }
15761 }
15762
15763 /* End of Outputs for SubSystem: '<S559>/GNSSDOPs_011' */
15764
15765 /* DataTypeConversion: '<S559>/Data Type Conversion8' */
15766 L4_MABX_B.RX_status_h = (L4_MABX_B.SFunction1_o7_ob != 0.0);
15767
15768 /* Outputs for Enabled SubSystem: '<S559>/GNSSDOPs_1' incorporates:
15769 * EnablePort: '<S561>/Enable'
15770 */
15771 /* Constant: '<S427>/Constant' */
15772 if (L4_MABX_P.Constant_Value_jo > 0.0) {
15773 /* S-Function (rti_commonblock): '<S561>/S-Function1' */
15774 /* This comment workarounds a code generation problem */
15775
15776 /* dSPACE RTICAN RX Message Block: "GNSSDOPs_01" Id:435815169 */
15777 {
15778 UInt32 *CAN_Msg;
15779 static dsfloat time_old = 0.0;
15780
15781 /* Read status and timestamp info (previous message) */
15782 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0301].timestamp !=
15783 time_old) {
15784 /* ... save timestamp info for the calculation of the RX status
15785 during the consecutive sample hit*/
15786 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0301].
15787 timestamp;
15788
15789 /* ... set the processed flag to one */
15790 L4_MABX_B.SFunction1_o7_eh = 1.0;
15791 L4_MABX_B.SFunction1_o8_mx = (real_T)
15792 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0301].timestamp;
15793 L4_MABX_B.SFunction1_o9_ie = (real_T)
15794 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0301].deltatime;
15795 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0301].data;
15796
15797 /* Decode CAN message */
15798 {
15799 {
15800 rtican_Signal_t CAN_Sgn;
15801
15802 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
15803 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
15804 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15805 L4_MABX_B.SFunction1_o1_ou = ((real_T) CAN_Sgn.UnsignedSgn);
15806
15807 /* ...... "SetMode" (8|3, standard signal, unsigned int, little endian) */
15808 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
15809 CAN_Sgn.UnsignedSgn &= 0x00000007;
15810 L4_MABX_B.SFunction1_o2_e4 = ((real_T) CAN_Sgn.UnsignedSgn);
15811
15812 /* ...... "OpMode" (11|3, standard signal, unsigned int, little endian) */
15813 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
15814 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 3;
15815 CAN_Sgn.UnsignedSgn &= 0x00000007;
15816 L4_MABX_B.SFunction1_o3_nc = ((real_T) CAN_Sgn.UnsignedSgn);
15817
15818 /* ...... "HDOP_" (16|16, standard signal, signed int, little endian) */
15819 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
15820 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
15821 CAN_Sgn.SignedSgn &= 0x0000FFFF;
15822 if (CAN_Sgn.SignedSgn >> 15) {
15823 CAN_Sgn.SignedSgn |= 0xFFFF0000;
15824 }
15825
15826 L4_MABX_B.SFunction1_o4_nk = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
15827
15828 /* ...... "VDOP" (32|16, standard signal, signed int, little endian) */
15829 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
15830 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
15831 CAN_Sgn.SignedSgn &= 0x0000FFFF;
15832 if (CAN_Sgn.SignedSgn >> 15) {
15833 CAN_Sgn.SignedSgn |= 0xFFFF0000;
15834 }
15835
15836 L4_MABX_B.SFunction1_o5_fr = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
15837
15838 /* ...... "TDOP" (48|16, standard signal, signed int, little endian) */
15839 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
15840 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[7];
15841 CAN_Sgn.SignedSgn &= 0x0000FFFF;
15842 if (CAN_Sgn.SignedSgn >> 15) {
15843 CAN_Sgn.SignedSgn |= 0xFFFF0000;
15844 }
15845
15846 L4_MABX_B.SFunction1_o6_mi = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
15847 }
15848 }
15849 } else {
15850 /* set RX status to 0 because no new message has arrived */
15851 L4_MABX_B.SFunction1_o7_eh = 0.0;
15852 }
15853 }
15854 }
15855
15856 /* End of Outputs for SubSystem: '<S559>/GNSSDOPs_1' */
15857
15858 /* Switch: '<S559>/Switch' */
15859 if (L4_MABX_B.RX_status_h) {
15860 L4_MABX_B.HDOP_ = L4_MABX_B.SFunction1_o4_h5;
15861 } else {
15862 L4_MABX_B.HDOP_ = L4_MABX_B.SFunction1_o4_nk;
15863 }
15864
15865 /* Outputs for Atomic SubSystem: '<S65>/Task_20ms' */
15866 /* RateTransition: '<S382>/TmpRTBAtCheckHDOPInport1' */
15867 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
15868 L4_MABX_B.HDOP__f1 = L4_MABX_B.HDOP_;
15869 L4_MABX_B.FrontAxleSpeed_d = L4_MABX_B.SFunction1_o1_c4;
15870 L4_MABX_B.FrontAxleSpeed_dv = L4_MABX_B.SFunction1_o1_c4;
15871 L4_MABX_B.FrontAxleSpeed_dvq = L4_MABX_B.SFunction1_o1_c4;
15872 L4_MABX_B.TmpRTBAtVehHeadingInport1 = YawRate;
15873 }
15874
15875 /* End of RateTransition: '<S382>/TmpRTBAtCheckHDOPInport1' */
15876 /* End of Outputs for SubSystem: '<S65>/Task_20ms' */
15877
15878 /* Switch: '<S384>/Switch2' incorporates:
15879 * Constant: '<S384>/No Data'
15880 * Switch: '<S384>/Switch5'
15881 * Switch: '<S384>/Switch6'
15882 * Switch: '<S384>/Switch7'
15883 * Switch: '<S384>/Switch8'
15884 */
15885 if (RTMapsOk) {
15886 /* Gain: '<S384>/m//s_to_km//h' */
15887 L4_MABX_B.ms_to_kmh = L4_MABX_P.ms_to_kmh_Gain *
15888 L4_MABX_B.Decoder_o1.CurrentVelocity;
15889 CurrentVelocity_kph = L4_MABX_B.ms_to_kmh;
15890
15891 /* Gain: '<S384>/for_logging3' */
15892 L4_MABX_B.for_logging3 = L4_MABX_P.for_logging3_Gain *
15893 L4_MABX_B.Decoder_o1.CrosstrackError;
15894 CrosstrackError = L4_MABX_B.for_logging3;
15895
15896 /* Gain: '<S384>/for_logging4' */
15897 L4_MABX_B.for_logging4 = L4_MABX_P.for_logging4_Gain *
15898 L4_MABX_B.Decoder_o1.GPS_X;
15899 GPS_X = L4_MABX_B.for_logging4;
15900
15901 /* Gain: '<S384>/for_logging5' */
15902 L4_MABX_B.for_logging5 = L4_MABX_P.for_logging5_Gain *
15903 L4_MABX_B.Decoder_o1.GPS_Y;
15904 GPS_Y = L4_MABX_B.for_logging5;
15905
15906 /* Gain: '<S384>/for_logging6' */
15907 L4_MABX_B.for_logging6 = L4_MABX_P.for_logging6_Gain *
15908 L4_MABX_B.Decoder_o1.GPS_Time;
15909 GPS_Time = L4_MABX_B.for_logging6;
15910 } else {
15911 CurrentVelocity_kph = L4_MABX_P.NoData_Value;
15912 CrosstrackError = L4_MABX_P.NoData_Value;
15913 GPS_X = L4_MABX_P.NoData_Value;
15914 GPS_Y = L4_MABX_P.NoData_Value;
15915 GPS_Time = L4_MABX_P.NoData_Value;
15916 }
15917
15918 /* End of Switch: '<S384>/Switch2' */
15919
15920 /* S-Function (rti_commonblock): '<S394>/S-Function1' */
15921
15922 /* This comment workarounds a code generation problem */
15923
15924 /* End of Outputs for S-Function (rti_commonblock): '<S394>/S-Function1' */
15925
15926 /* S-Function (rti_commonblock): '<S400>/S-Function1' */
15927
15928 /* This comment workarounds a code generation problem */
15929
15930 /* End of Outputs for S-Function (rti_commonblock): '<S400>/S-Function1' */
15931
15932 /* S-Function (rti_commonblock): '<S386>/TRC Exclusion' */
15933 /* This comment workarounds a code generation problem */
15934
15935 /* S-Function (rti_commonblock): '<S387>/TRC Exclusion' */
15936 /* This comment workarounds a code generation problem */
15937
15938 /* UnitDelay: '<S3>/Unit_Delay' */
15939 L4_MABX_B.DesSteeringAngle = L4_MABX_DW.Unit_Delay_1_DSTATE;
15940 L4_MABX_B.Stanley_axleAngle2 = L4_MABX_DW.Unit_Delay_10_DSTATE;
15941 L4_MABX_B.SPN1760_GrossCombinationVehic_d = L4_MABX_DW.Unit_Delay_100_DSTATE;
15942 L4_MABX_B.ACCDistanceAlertSignal_d = L4_MABX_DW.Unit_Delay_101_DSTATE;
15943 L4_MABX_B.ForwardCollisionWarning_n = L4_MABX_DW.Unit_Delay_102_DSTATE;
15944 L4_MABX_B.SPN544_EngineReferenceTorque_j = L4_MABX_DW.Unit_Delay_103_DSTATE;
15945 L4_MABX_B.ROPEngCtrlActive = L4_MABX_DW.Unit_Delay_104_DSTATE;
15946 L4_MABX_B.ROPBrakeCtrlActive = L4_MABX_DW.Unit_Delay_105_DSTATE;
15947 L4_MABX_B.YCEngCtrlActive = L4_MABX_DW.Unit_Delay_106_DSTATE;
15948 L4_MABX_B.YCBrakeCtrlActive = L4_MABX_DW.Unit_Delay_107_DSTATE;
15949 L4_MABX_B.SPN1807_SteeringWheelAngle = L4_MABX_DW.Unit_Delay_108_DSTATE;
15950 L4_MABX_B.SPN1808_YawRate = L4_MABX_DW.Unit_Delay_109_DSTATE;
15951 L4_MABX_B.DesSteeringAngleTerm = L4_MABX_DW.Unit_Delay_11_DSTATE;
15952 L4_MABX_B.SPN1810_LongitudinalAcceleratio = L4_MABX_DW.Unit_Delay_110_DSTATE;
15953 L4_MABX_B.SteerWheelTurnCounter = L4_MABX_DW.Unit_Delay_111_DSTATE;
15954 L4_MABX_B.SteerWheelAngleSensorType = L4_MABX_DW.Unit_Delay_112_DSTATE;
15955 L4_MABX_B.LateralAcceleration = L4_MABX_DW.Unit_Delay_113_DSTATE;
15956 L4_MABX_B.BarometricPress = L4_MABX_DW.Unit_Delay_114_DSTATE;
15957 L4_MABX_B.AmbientAirTemp = L4_MABX_DW.Unit_Delay_115_DSTATE;
15958 L4_MABX_B.F_Truck1571_VIN_Match = L4_MABX_DW.Unit_Delay_116_DSTATE;
15959 L4_MABX_B.F_Truck166_VIN_Match = L4_MABX_DW.Unit_Delay_117_DSTATE;
15960 L4_MABX_B.PitchAngleExRange_h = L4_MABX_DW.Unit_Delay_118_DSTATE;
15961 L4_MABX_B.PX2_LanePosEstPosition = L4_MABX_DW.Unit_Delay_119_DSTATE;
15962 L4_MABX_B.DesSteeringDistTerm = L4_MABX_DW.Unit_Delay_12_DSTATE;
15963 L4_MABX_B.PX2_LanePosEstAngle = L4_MABX_DW.Unit_Delay_120_DSTATE;
15964 L4_MABX_B.PX2_LanePosEstNumPoints = L4_MABX_DW.Unit_Delay_121_DSTATE;
15965 L4_MABX_B.Latitude__e = L4_MABX_DW.Unit_Delay_122_DSTATE;
15966 L4_MABX_B.Longitude__k = L4_MABX_DW.Unit_Delay_123_DSTATE;
15967 L4_MABX_B.HDOP__f = L4_MABX_DW.Unit_Delay_124_DSTATE;
15968 L4_MABX_B.XPRControlMode_d = L4_MABX_DW.Unit_Delay_125_DSTATE;
15969 L4_MABX_B.XPRErrorState_a = L4_MABX_DW.Unit_Delay_126_DSTATE;
15970 L4_MABX_B.PressureP1_l = L4_MABX_DW.Unit_Delay_127_DSTATE;
15971 L4_MABX_B.PressureP4_a = L4_MABX_DW.Unit_Delay_128_DSTATE;
15972 L4_MABX_B.PressureP21_k = L4_MABX_DW.Unit_Delay_129_DSTATE;
15973 L4_MABX_B.numLanePoints = L4_MABX_DW.Unit_Delay_13_DSTATE;
15974 L4_MABX_B.PressureP22_g = L4_MABX_DW.Unit_Delay_130_DSTATE;
15975 L4_MABX_B.PressureP42_h = L4_MABX_DW.Unit_Delay_131_DSTATE;
15976 L4_MABX_B.ReAX_ActualHandwheelPos_f = L4_MABX_DW.Unit_Delay_132_DSTATE;
15977 L4_MABX_B.ReAX_EchoedSteerWheelPos_f = L4_MABX_DW.Unit_Delay_133_DSTATE;
15978 L4_MABX_B.RTMapsOk_c = L4_MABX_DW.Unit_Delay_134_DSTATE;
15979 L4_MABX_B.SupervisorMode_i = L4_MABX_DW.Unit_Delay_135_DSTATE;
15980 L4_MABX_B.CurrentAzimuth_rad_l = L4_MABX_DW.Unit_Delay_136_DSTATE;
15981 L4_MABX_B.TargetAzimuth_rad_f = L4_MABX_DW.Unit_Delay_137_DSTATE;
15982 L4_MABX_B.CurrentVelocity_kph_f = L4_MABX_DW.Unit_Delay_138_DSTATE;
15983 L4_MABX_B.TargetVelocity_kph_n = L4_MABX_DW.Unit_Delay_139_DSTATE;
15984 L4_MABX_B.rawPositionError = L4_MABX_DW.Unit_Delay_14_DSTATE;
15985 L4_MABX_B.Curvature_j = L4_MABX_DW.Unit_Delay_140_DSTATE;
15986 L4_MABX_B.CrosstrackError_o = L4_MABX_DW.Unit_Delay_141_DSTATE;
15987 L4_MABX_B.slewedPosError = L4_MABX_DW.Unit_Delay_15_DSTATE;
15988 L4_MABX_B.previewSteeringAngle = L4_MABX_DW.Unit_Delay_16_DSTATE;
15989 L4_MABX_B.APTC_Pedal_torque_dem_value = L4_MABX_DW.Unit_Delay_17_DSTATE;
15990 L4_MABX_B.APTC_arb_pedal_low_idl_sw = L4_MABX_DW.Unit_Delay_18_DSTATE;
15991 L4_MABX_B.APTC_arb_pedal_position = L4_MABX_DW.Unit_Delay_19_DSTATE;
15992 L4_MABX_B.DesSteeringPID_Dterm = L4_MABX_DW.Unit_Delay_2_DSTATE;
15993 L4_MABX_B.signal1 = L4_MABX_DW.Unit_Delay_20_DSTATE;
15994 L4_MABX_B.PID_output = L4_MABX_DW.Unit_Delay_21_DSTATE;
15995 L4_MABX_B.PID_output_unlim = L4_MABX_DW.Unit_Delay_22_DSTATE;
15996 L4_MABX_B.PID_control_error = L4_MABX_DW.Unit_Delay_23_DSTATE;
15997 L4_MABX_B.PID_p_term = L4_MABX_DW.Unit_Delay_24_DSTATE;
15998 L4_MABX_B.PID_i_term = L4_MABX_DW.Unit_Delay_25_DSTATE;
15999 L4_MABX_B.PID_d_term = L4_MABX_DW.Unit_Delay_26_DSTATE;
16000 L4_MABX_B.PID_hold_i_term_f = L4_MABX_DW.Unit_Delay_27_DSTATE;
16001 L4_MABX_B.ThrottlePID_Y = L4_MABX_DW.Unit_Delay_28_DSTATE;
16002 L4_MABX_B.EngineSpeedTarget_Y = L4_MABX_DW.Unit_Delay_29_DSTATE;
16003 L4_MABX_B.DesSteeringPID_Iterm = L4_MABX_DW.Unit_Delay_3_DSTATE;
16004 L4_MABX_B.F_Ignition_relay_command = L4_MABX_DW.Unit_Delay_30_DSTATE;
16005 L4_MABX_B.F_Inverter_relay_command = L4_MABX_DW.Unit_Delay_31_DSTATE;
16006 L4_MABX_B.F_MABX_relay_command = L4_MABX_DW.Unit_Delay_32_DSTATE;
16007 L4_MABX_B.F_Sensor_relay_command = L4_MABX_DW.Unit_Delay_33_DSTATE;
16008 L4_MABX_B.BrkPedArbBrakeSwitch = L4_MABX_DW.Unit_Delay_34_DSTATE;
16009 L4_MABX_B.Accel_rate_ms2 = L4_MABX_DW.Unit_Delay_35_DSTATE;
16010 L4_MABX_B.BrakingControlActive = L4_MABX_DW.Unit_Delay_36_DSTATE;
16011 L4_MABX_B.F_Hold_brakes_at_zero = L4_MABX_DW.Unit_Delay_37_DSTATE;
16012 L4_MABX_B.BrakingPID_Y = L4_MABX_DW.Unit_Delay_38_DSTATE;
16013 L4_MABX_B.BrakingPID_Y_Direct_Pressure = L4_MABX_DW.Unit_Delay_39_DSTATE;
16014 L4_MABX_B.DesSteeringPID_Pterm = L4_MABX_DW.Unit_Delay_4_DSTATE;
16015 L4_MABX_B.VSPD_TARGET_KPH_APV_h = L4_MABX_DW.Unit_Delay_40_DSTATE;
16016 L4_MABX_B.Vehicle_speed_target = L4_MABX_DW.Unit_Delay_41_DSTATE;
16017 L4_MABX_B.VSPD_HYST_KPH_APV = L4_MABX_DW.Unit_Delay_42_DSTATE;
16018 L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_APV = L4_MABX_DW.Unit_Delay_43_DSTATE;
16019 L4_MABX_B.ACCEL_LIM_MS2_APV = L4_MABX_DW.Unit_Delay_44_DSTATE;
16020 L4_MABX_B.AutonomousOutputEnabled_k = L4_MABX_DW.Unit_Delay_46_DSTATE;
16021 L4_MABX_B.DesSteeringPID_Y = L4_MABX_DW.Unit_Delay_5_DSTATE;
16022 L4_MABX_B.DesSteeringPID_e = L4_MABX_DW.Unit_Delay_6_DSTATE;
16023 L4_MABX_B.DeSteeringPID_Y2 = L4_MABX_DW.Unit_Delay_7_DSTATE;
16024 L4_MABX_B.CurvatureEst = L4_MABX_DW.Unit_Delay_8_DSTATE;
16025 L4_MABX_B.PedalPWMPos = L4_MABX_DW.Unit_Delay_82_DSTATE;
16026 L4_MABX_B.IgnitionKeySwitch_voltage_j = L4_MABX_DW.Unit_Delay_83_DSTATE;
16027 L4_MABX_B.BrakeSwitch_f = L4_MABX_DW.Unit_Delay_84_DSTATE;
16028 L4_MABX_B.Park_brake_switch = L4_MABX_DW.Unit_Delay_85_DSTATE;
16029 L4_MABX_B.CruiseCtrlEnableSwitch = L4_MABX_DW.Unit_Delay_86_DSTATE;
16030 L4_MABX_B.FrontAxleSpeed = L4_MABX_DW.Unit_Delay_87_DSTATE;
16031 L4_MABX_B.FrontAxleLeftWheelSpeed = L4_MABX_DW.Unit_Delay_88_DSTATE;
16032 L4_MABX_B.FrontAxleRightWheelSpeed = L4_MABX_DW.Unit_Delay_89_DSTATE;
16033 L4_MABX_B.Stanley_axleAngle = L4_MABX_DW.Unit_Delay_9_DSTATE;
16034 L4_MABX_B.EBSBrakeSwitch = L4_MABX_DW.Unit_Delay_90_DSTATE;
16035 L4_MABX_B.SPN524_TransSelectedGear_j = L4_MABX_DW.Unit_Delay_91_DSTATE;
16036 L4_MABX_B.SPN523_TransCurrentGear_e = L4_MABX_DW.Unit_Delay_92_DSTATE;
16037 L4_MABX_B.SPN526_TransActualGearRatio_f = L4_MABX_DW.Unit_Delay_93_DSTATE;
16038 L4_MABX_B.ActualEngPercentTorque = L4_MABX_DW.Unit_Delay_94_DSTATE;
16039 L4_MABX_B.ActlEngPrcntTrqueHighResolution = L4_MABX_DW.Unit_Delay_95_DSTATE;
16040 L4_MABX_B.EngSpeed = L4_MABX_DW.Unit_Delay_96_DSTATE;
16041 L4_MABX_B.DriversDemandEngPercentTorque = L4_MABX_DW.Unit_Delay_97_DSTATE;
16042 L4_MABX_B.SPN514_NominalFrictionPercent_k = L4_MABX_DW.Unit_Delay_98_DSTATE;
16043 L4_MABX_B.SPN2978_EstEngParasiticLosses_n = L4_MABX_DW.Unit_Delay_99_DSTATE;
16044
16045 /* DataTypeConversion: '<S512>/Data Type Conversion' */
16046 L4_MABX_B.DataTypeConversion_pso = L4_MABX_B.DataTypeConversion_gg[0];
16047
16048 /* DataTypeConversion: '<S512>/Data Type Conversion1' */
16049 L4_MABX_B.DataTypeConversion1_dw = L4_MABX_B.DataTypeConversion_gg[1];
16050
16051 /* ArithShift: '<S512>/Shift Arithmetic' */
16052 L4_MABX_B.ShiftArithmetic_i = (uint16_T)(L4_MABX_B.DataTypeConversion1_dw << 8);
16053
16054 /* S-Function (sfix_bitop): '<S539>/Operator' */
16055 L4_MABX_B.Operator_k = (uint16_T)(L4_MABX_B.DataTypeConversion_pso |
16056 L4_MABX_B.ShiftArithmetic_i);
16057
16058 /* DataTypeConversion: '<S539>/DataType' */
16059 L4_MABX_B.DataType_k5 = L4_MABX_B.Operator_k;
16060
16061 /* DataTypeConversion: '<S512>/Data Type Conversion2' */
16062 L4_MABX_B.DataTypeConversion2_c = L4_MABX_B.DataType_k5;
16063
16064 /* Product: '<S512>/Product' incorporates:
16065 * Constant: '<S512>/Constant'
16066 */
16067 L4_MABX_B.SPN188_EngineSpeedAtIdlePoint1 = L4_MABX_B.DataTypeConversion2_c *
16068 L4_MABX_P.Constant_Value_ac;
16069
16070 /* DataTypeConversion: '<S404>/Data Type Conversion' */
16071 L4_MABX_B.DataTypeConversion_g = L4_MABX_B.SPN188_EngineSpeedAtIdlePoint1;
16072
16073 /* DataTypeConversion: '<S519>/Data Type Conversion' */
16074 L4_MABX_B.DataTypeConversion_e = L4_MABX_B.DataTypeConversion_gg[2];
16075
16076 /* Sum: '<S519>/Add' incorporates:
16077 * Constant: '<S519>/Constant'
16078 */
16079 L4_MABX_B.SPN539_EnginePercentTorqueAtIdl = L4_MABX_B.DataTypeConversion_e +
16080 L4_MABX_P.Constant_Value_hu;
16081
16082 /* DataTypeConversion: '<S404>/Data Type Conversion1' */
16083 L4_MABX_B.DataTypeConversion1_d = L4_MABX_B.SPN539_EnginePercentTorqueAtIdl;
16084
16085 /* DataTypeConversion: '<S516>/Data Type Conversion' */
16086 L4_MABX_B.DataTypeConversion_c = L4_MABX_B.DataTypeConversion_gg[15];
16087
16088 /* DataTypeConversion: '<S516>/Data Type Conversion1' */
16089 L4_MABX_B.DataTypeConversion1_if = L4_MABX_B.DataTypeConversion_gg[16];
16090
16091 /* ArithShift: '<S516>/Shift Arithmetic' */
16092 L4_MABX_B.ShiftArithmetic_a = (uint16_T)(L4_MABX_B.DataTypeConversion1_if << 8);
16093
16094 /* S-Function (sfix_bitop): '<S541>/Operator' */
16095 L4_MABX_B.Operator_n4 = (uint16_T)(L4_MABX_B.DataTypeConversion_c |
16096 L4_MABX_B.ShiftArithmetic_a);
16097
16098 /* DataTypeConversion: '<S541>/DataType' */
16099 L4_MABX_B.DataType_fb = L4_MABX_B.Operator_n4;
16100
16101 /* DataTypeConversion: '<S516>/Data Type Conversion2' */
16102 L4_MABX_B.DataTypeConversion2_fo = L4_MABX_B.DataType_fb;
16103
16104 /* Product: '<S516>/Product' incorporates:
16105 * Constant: '<S516>/Constant'
16106 */
16107 L4_MABX_B.SPN532_EngineSpeedAtHighIdlePoi = L4_MABX_B.DataTypeConversion2_fo *
16108 L4_MABX_P.Constant_Value_fw;
16109
16110 /* DataTypeConversion: '<S404>/Data Type Conversion10' */
16111 L4_MABX_B.DataTypeConversion10 = L4_MABX_B.SPN532_EngineSpeedAtHighIdlePoi;
16112
16113 /* DataTypeConversion: '<S517>/Data Type Conversion1' */
16114 L4_MABX_B.DataTypeConversion1_pi = L4_MABX_B.DataTypeConversion_gg[17];
16115
16116 /* DataTypeConversion: '<S517>/Data Type Conversion3' */
16117 L4_MABX_B.DataTypeConversion3_o0 = L4_MABX_B.DataTypeConversion_gg[18];
16118
16119 /* ArithShift: '<S517>/Shift Arithmetic' */
16120 L4_MABX_B.ShiftArithmetic_g = (uint16_T)(L4_MABX_B.DataTypeConversion3_o0 << 8);
16121
16122 /* S-Function (sfix_bitop): '<S542>/Operator' */
16123 L4_MABX_B.Operator_ho = (uint16_T)(L4_MABX_B.DataTypeConversion1_pi |
16124 L4_MABX_B.ShiftArithmetic_g);
16125
16126 /* DataTypeConversion: '<S542>/DataType' */
16127 L4_MABX_B.DataType_ow = L4_MABX_B.Operator_ho;
16128
16129 /* DataTypeConversion: '<S517>/Data Type Conversion2' */
16130 L4_MABX_B.DataTypeConversion2_g = L4_MABX_B.DataType_ow;
16131
16132 /* Product: '<S517>/Product' incorporates:
16133 * Constant: '<S517>/Constant'
16134 */
16135 L4_MABX_B.SPN545_EngineGainKpOfTheEndspee = L4_MABX_B.DataTypeConversion2_g *
16136 L4_MABX_P.Constant_Value_mr;
16137
16138 /* DataTypeConversion: '<S404>/Data Type Conversion11' */
16139 L4_MABX_B.DataTypeConversion11 = L4_MABX_B.SPN545_EngineGainKpOfTheEndspee;
16140
16141 /* DataTypeConversion: '<S520>/Data Type Conversion1' */
16142 L4_MABX_B.DataTypeConversion1_gm = L4_MABX_B.DataTypeConversion_gg[21];
16143
16144 /* DataTypeConversion: '<S520>/Data Type Conversion3' */
16145 L4_MABX_B.DataTypeConversion3_ot = L4_MABX_B.DataTypeConversion_gg[22];
16146
16147 /* ArithShift: '<S520>/Shift Arithmetic' */
16148 L4_MABX_B.ShiftArithmetic_i2 = (uint16_T)(L4_MABX_B.DataTypeConversion3_ot <<
16149 8);
16150
16151 /* S-Function (sfix_bitop): '<S544>/Operator' */
16152 L4_MABX_B.Operator_fh = (uint16_T)(L4_MABX_B.DataTypeConversion1_gm |
16153 L4_MABX_B.ShiftArithmetic_i2);
16154
16155 /* DataTypeConversion: '<S544>/DataType' */
16156 L4_MABX_B.DataType_dx = L4_MABX_B.Operator_fh;
16157
16158 /* DataTypeConversion: '<S520>/Data Type Conversion2' */
16159 L4_MABX_B.DataTypeConversion2_a = L4_MABX_B.DataType_dx;
16160
16161 /* Product: '<S520>/Product' incorporates:
16162 * Constant: '<S520>/Constant'
16163 */
16164 L4_MABX_B.SPN533_EngineMaximumMomentaryOv = L4_MABX_B.DataTypeConversion2_a *
16165 L4_MABX_P.Constant_Value_j3;
16166
16167 /* DataTypeConversion: '<S404>/Data Type Conversion13' */
16168 L4_MABX_B.DataTypeConversion13 = L4_MABX_B.SPN533_EngineMaximumMomentaryOv;
16169
16170 /* DataTypeConversion: '<S521>/Data Type Conversion2' */
16171 L4_MABX_B.DataTypeConversion2_i = L4_MABX_B.DataTypeConversion_gg[23];
16172
16173 /* Product: '<S521>/Product' incorporates:
16174 * Constant: '<S521>/Constant'
16175 */
16176 L4_MABX_B.SPN534_EngineMaximumMomentaryOv = L4_MABX_B.DataTypeConversion2_i *
16177 L4_MABX_P.Constant_Value_ker;
16178
16179 /* DataTypeConversion: '<S404>/Data Type Conversion14' */
16180 L4_MABX_B.DataTypeConversion14 = L4_MABX_B.SPN534_EngineMaximumMomentaryOv;
16181
16182 /* DataTypeConversion: '<S522>/Data Type Conversion2' */
16183 L4_MABX_B.DataTypeConversion2_n = L4_MABX_B.DataTypeConversion_gg[24];
16184
16185 /* Product: '<S522>/Product' incorporates:
16186 * Constant: '<S522>/Constant'
16187 */
16188 L4_MABX_B.SPN535_EngineRequestedSpeedCont = L4_MABX_B.DataTypeConversion2_n *
16189 L4_MABX_P.Constant_Value_mg4;
16190
16191 /* DataTypeConversion: '<S404>/Data Type Conversion15' */
16192 L4_MABX_B.DataTypeConversion15 = L4_MABX_B.SPN535_EngineRequestedSpeedCont;
16193
16194 /* DataTypeConversion: '<S523>/Data Type Conversion2' */
16195 L4_MABX_B.DataTypeConversion2_d = L4_MABX_B.DataTypeConversion_gg[25];
16196
16197 /* Product: '<S523>/Product' incorporates:
16198 * Constant: '<S523>/Constant'
16199 */
16200 L4_MABX_B.SPN536_EngineRequestedSpeedCont = L4_MABX_B.DataTypeConversion2_d *
16201 L4_MABX_P.Constant_Value_aa;
16202
16203 /* DataTypeConversion: '<S404>/Data Type Conversion16' */
16204 L4_MABX_B.DataTypeConversion16 = L4_MABX_B.SPN536_EngineRequestedSpeedCont;
16205
16206 /* DataTypeConversion: '<S524>/Data Type Conversion' */
16207 L4_MABX_B.DataTypeConversion_p = L4_MABX_B.DataTypeConversion_gg[26];
16208
16209 /* Sum: '<S524>/Add' incorporates:
16210 * Constant: '<S524>/Constant'
16211 */
16212 L4_MABX_B.SPN537_EngineRequestedTorqueCon = L4_MABX_B.DataTypeConversion_p +
16213 L4_MABX_P.Constant_Value_kn;
16214
16215 /* DataTypeConversion: '<S404>/Data Type Conversion17' */
16216 L4_MABX_B.DataTypeConversion17 = L4_MABX_B.SPN537_EngineRequestedTorqueCon;
16217
16218 /* DataTypeConversion: '<S525>/Data Type Conversion' */
16219 L4_MABX_B.DataTypeConversion_b = L4_MABX_B.DataTypeConversion_gg[27];
16220
16221 /* Sum: '<S525>/Add' incorporates:
16222 * Constant: '<S525>/Constant'
16223 */
16224 L4_MABX_B.SPN538_EngineRequestedTorqueCon = L4_MABX_B.DataTypeConversion_b +
16225 L4_MABX_P.Constant_Value_b;
16226
16227 /* DataTypeConversion: '<S404>/Data Type Conversion18' */
16228 L4_MABX_B.DataTypeConversion18 = L4_MABX_B.SPN538_EngineRequestedTorqueCon;
16229
16230 /* DataTypeConversion: '<S526>/Data Type Conversion1' */
16231 L4_MABX_B.DataTypeConversion1_gb = L4_MABX_B.DataTypeConversion_gg[28];
16232
16233 /* DataTypeConversion: '<S526>/Data Type Conversion3' */
16234 L4_MABX_B.DataTypeConversion3_e = L4_MABX_B.DataTypeConversion_gg[29];
16235
16236 /* ArithShift: '<S526>/Shift Arithmetic' */
16237 L4_MABX_B.ShiftArithmetic_ip = (uint16_T)(L4_MABX_B.DataTypeConversion3_e << 8);
16238
16239 /* S-Function (sfix_bitop): '<S545>/Operator' */
16240 L4_MABX_B.Operator_mv = (uint16_T)(L4_MABX_B.DataTypeConversion1_gb |
16241 L4_MABX_B.ShiftArithmetic_ip);
16242
16243 /* DataTypeConversion: '<S545>/DataType' */
16244 L4_MABX_B.DataType_p4 = L4_MABX_B.Operator_mv;
16245
16246 /* DataTypeConversion: '<S526>/Data Type Conversion2' */
16247 L4_MABX_B.DataTypeConversion2_ck = L4_MABX_B.DataType_p4;
16248
16249 /* Product: '<S526>/Product' incorporates:
16250 * Constant: '<S526>/Constant'
16251 */
16252 L4_MABX_B.SPN1712_EngRequestedSpeedCtrlRn = L4_MABX_B.DataTypeConversion2_ck *
16253 L4_MABX_P.Constant_Value_eo;
16254
16255 /* DataTypeConversion: '<S404>/Data Type Conversion19' */
16256 L4_MABX_B.DataTypeConversion19 = L4_MABX_B.SPN1712_EngRequestedSpeedCtrlRn;
16257
16258 /* DataTypeConversion: '<S534>/Data Type Conversion' */
16259 L4_MABX_B.DataTypeConversion_em = L4_MABX_B.DataTypeConversion_gg[3];
16260
16261 /* DataTypeConversion: '<S534>/Data Type Conversion1' */
16262 L4_MABX_B.DataTypeConversion1_aq = L4_MABX_B.DataTypeConversion_gg[4];
16263
16264 /* ArithShift: '<S534>/Shift Arithmetic' */
16265 L4_MABX_B.ShiftArithmetic_n = (uint16_T)(L4_MABX_B.DataTypeConversion1_aq << 8);
16266
16267 /* S-Function (sfix_bitop): '<S548>/Operator' */
16268 L4_MABX_B.Operator_gl = (uint16_T)(L4_MABX_B.DataTypeConversion_em |
16269 L4_MABX_B.ShiftArithmetic_n);
16270
16271 /* DataTypeConversion: '<S548>/DataType' */
16272 L4_MABX_B.DataType_h = L4_MABX_B.Operator_gl;
16273
16274 /* DataTypeConversion: '<S534>/Data Type Conversion2' */
16275 L4_MABX_B.DataTypeConversion2_e = L4_MABX_B.DataType_h;
16276
16277 /* Product: '<S534>/Product' incorporates:
16278 * Constant: '<S534>/Constant'
16279 */
16280 L4_MABX_B.SPN528_EngineSpeedAtPoint2 = L4_MABX_B.DataTypeConversion2_e *
16281 L4_MABX_P.Constant_Value_i2;
16282
16283 /* DataTypeConversion: '<S404>/Data Type Conversion2' */
16284 L4_MABX_B.DataTypeConversion2_j = L4_MABX_B.SPN528_EngineSpeedAtPoint2;
16285
16286 /* DataTypeConversion: '<S527>/Data Type Conversion1' */
16287 L4_MABX_B.DataTypeConversion1_gs = L4_MABX_B.DataTypeConversion_gg[30];
16288
16289 /* DataTypeConversion: '<S527>/Data Type Conversion3' */
16290 L4_MABX_B.DataTypeConversion3_n = L4_MABX_B.DataTypeConversion_gg[31];
16291
16292 /* ArithShift: '<S527>/Shift Arithmetic' */
16293 L4_MABX_B.ShiftArithmetic_j = (uint16_T)(L4_MABX_B.DataTypeConversion3_n << 8);
16294
16295 /* S-Function (sfix_bitop): '<S546>/Operator' */
16296 L4_MABX_B.Operator_hq = (uint16_T)(L4_MABX_B.DataTypeConversion1_gs |
16297 L4_MABX_B.ShiftArithmetic_j);
16298
16299 /* DataTypeConversion: '<S546>/DataType' */
16300 L4_MABX_B.DataType_lu = L4_MABX_B.Operator_hq;
16301
16302 /* DataTypeConversion: '<S527>/Data Type Conversion2' */
16303 L4_MABX_B.DataTypeConversion2_gx = L4_MABX_B.DataType_lu;
16304
16305 /* Product: '<S527>/Product' incorporates:
16306 * Constant: '<S527>/Constant'
16307 */
16308 L4_MABX_B.SPN1794_EngineMomentOfInertia = L4_MABX_B.DataTypeConversion2_gx *
16309 L4_MABX_P.Constant_Value_me;
16310
16311 /* DataTypeConversion: '<S404>/Data Type Conversion20' */
16312 L4_MABX_B.DataTypeConversion20 = L4_MABX_B.SPN1794_EngineMomentOfInertia;
16313
16314 /* DataTypeConversion: '<S528>/Data Type Conversion' */
16315 L4_MABX_B.DataTypeConversion_bp = L4_MABX_B.DataTypeConversion_gg[32];
16316
16317 /* DataTypeConversion: '<S528>/Data Type Conversion1' */
16318 L4_MABX_B.DataTypeConversion1_lr = L4_MABX_B.DataTypeConversion_gg[33];
16319
16320 /* ArithShift: '<S528>/Shift Arithmetic' */
16321 L4_MABX_B.ShiftArithmetic_d = (uint16_T)(L4_MABX_B.DataTypeConversion1_lr << 8);
16322
16323 /* S-Function (sfix_bitop): '<S547>/Operator' */
16324 L4_MABX_B.Operator_he = (uint16_T)(L4_MABX_B.DataTypeConversion_bp |
16325 L4_MABX_B.ShiftArithmetic_d);
16326
16327 /* DataTypeConversion: '<S547>/DataType' */
16328 L4_MABX_B.DataType_ek = L4_MABX_B.Operator_he;
16329
16330 /* DataTypeConversion: '<S528>/Data Type Conversion2' */
16331 L4_MABX_B.SPN1846_EngineDefaultTorqueLimi = L4_MABX_B.DataType_ek;
16332
16333 /* DataTypeConversion: '<S404>/Data Type Conversion21' */
16334 L4_MABX_B.DataTypeConversion21 = L4_MABX_B.SPN1846_EngineDefaultTorqueLimi;
16335
16336 /* DataTypeConversion: '<S404>/Data Type Conversion22' */
16337 L4_MABX_B.DataTypeConversion22 = L4_MABX_B.DataTypeConversion_gg[34];
16338
16339 /* DataTypeConversion: '<S404>/Data Type Conversion23' */
16340 L4_MABX_B.DataTypeConversion23 = L4_MABX_B.DataTypeConversion_gg[35];
16341
16342 /* DataTypeConversion: '<S404>/Data Type Conversion24' */
16343 L4_MABX_B.DataTypeConversion24 = L4_MABX_B.DataTypeConversion_gg[36];
16344
16345 /* DataTypeConversion: '<S404>/Data Type Conversion25' */
16346 L4_MABX_B.DataTypeConversion25 = L4_MABX_B.DataTypeConversion_gg[37];
16347
16348 /* DataTypeConversion: '<S404>/Data Type Conversion26' */
16349 L4_MABX_B.DataTypeConversion26 = L4_MABX_B.DataTypeConversion_gg[38];
16350
16351 /* DataTypeConversion: '<S535>/Data Type Conversion' */
16352 L4_MABX_B.DataTypeConversion_d = L4_MABX_B.DataTypeConversion_gg[5];
16353
16354 /* Sum: '<S535>/Add' incorporates:
16355 * Constant: '<S535>/Constant'
16356 */
16357 L4_MABX_B.SPN540_EnginePercentTorqueAtPoi = L4_MABX_B.DataTypeConversion_d +
16358 L4_MABX_P.Constant_Value_io;
16359
16360 /* DataTypeConversion: '<S404>/Data Type Conversion3' */
16361 L4_MABX_B.DataTypeConversion3 = L4_MABX_B.SPN540_EnginePercentTorqueAtPoi;
16362
16363 /* DataTypeConversion: '<S536>/Data Type Conversion' */
16364 L4_MABX_B.DataTypeConversion_k1 = L4_MABX_B.DataTypeConversion_gg[6];
16365
16366 /* DataTypeConversion: '<S536>/Data Type Conversion1' */
16367 L4_MABX_B.DataTypeConversion1_gq = L4_MABX_B.DataTypeConversion_gg[7];
16368
16369 /* ArithShift: '<S536>/Shift Arithmetic' */
16370 L4_MABX_B.ShiftArithmetic_h = (uint16_T)(L4_MABX_B.DataTypeConversion1_gq << 8);
16371
16372 /* S-Function (sfix_bitop): '<S549>/Operator' */
16373 L4_MABX_B.Operator_iv = (uint16_T)(L4_MABX_B.DataTypeConversion_k1 |
16374 L4_MABX_B.ShiftArithmetic_h);
16375
16376 /* DataTypeConversion: '<S549>/DataType' */
16377 L4_MABX_B.DataType_n3 = L4_MABX_B.Operator_iv;
16378
16379 /* DataTypeConversion: '<S536>/Data Type Conversion2' */
16380 L4_MABX_B.DataTypeConversion2_l = L4_MABX_B.DataType_n3;
16381
16382 /* Product: '<S536>/Product' incorporates:
16383 * Constant: '<S536>/Constant'
16384 */
16385 L4_MABX_B.SPN529_EngineSpeedAtPoint3 = L4_MABX_B.DataTypeConversion2_l *
16386 L4_MABX_P.Constant_Value_an;
16387
16388 /* DataTypeConversion: '<S404>/Data Type Conversion4' */
16389 L4_MABX_B.DataTypeConversion4 = L4_MABX_B.SPN529_EngineSpeedAtPoint3;
16390
16391 /* DataTypeConversion: '<S537>/Data Type Conversion' */
16392 L4_MABX_B.DataTypeConversion_ba = L4_MABX_B.DataTypeConversion_gg[8];
16393
16394 /* Sum: '<S537>/Add' incorporates:
16395 * Constant: '<S537>/Constant'
16396 */
16397 L4_MABX_B.SPN541_EnginePercentTorqueAtPoi = L4_MABX_B.DataTypeConversion_ba +
16398 L4_MABX_P.Constant_Value_fn;
16399
16400 /* DataTypeConversion: '<S404>/Data Type Conversion5' */
16401 L4_MABX_B.DataTypeConversion5 = L4_MABX_B.SPN541_EnginePercentTorqueAtPoi;
16402
16403 /* DataTypeConversion: '<S538>/Data Type Conversion' */
16404 L4_MABX_B.DataTypeConversion_b4 = L4_MABX_B.DataTypeConversion_gg[9];
16405
16406 /* DataTypeConversion: '<S538>/Data Type Conversion1' */
16407 L4_MABX_B.DataTypeConversion1_j = L4_MABX_B.DataTypeConversion_gg[10];
16408
16409 /* ArithShift: '<S538>/Shift Arithmetic' */
16410 L4_MABX_B.ShiftArithmetic_e = (uint16_T)(L4_MABX_B.DataTypeConversion1_j << 8);
16411
16412 /* S-Function (sfix_bitop): '<S550>/Operator' */
16413 L4_MABX_B.Operator_mg = (uint16_T)(L4_MABX_B.DataTypeConversion_b4 |
16414 L4_MABX_B.ShiftArithmetic_e);
16415
16416 /* DataTypeConversion: '<S550>/DataType' */
16417 L4_MABX_B.DataType_pq = L4_MABX_B.Operator_mg;
16418
16419 /* DataTypeConversion: '<S538>/Data Type Conversion2' */
16420 L4_MABX_B.DataTypeConversion2_lu = L4_MABX_B.DataType_pq;
16421
16422 /* Product: '<S538>/Product' incorporates:
16423 * Constant: '<S538>/Constant'
16424 */
16425 L4_MABX_B.SPN530_EngineSpeedAtPoint4 = L4_MABX_B.DataTypeConversion2_lu *
16426 L4_MABX_P.Constant_Value_iz;
16427
16428 /* DataTypeConversion: '<S404>/Data Type Conversion6' */
16429 L4_MABX_B.DataTypeConversion6 = L4_MABX_B.SPN530_EngineSpeedAtPoint4;
16430
16431 /* DataTypeConversion: '<S513>/Data Type Conversion' */
16432 L4_MABX_B.DataTypeConversion_l = L4_MABX_B.DataTypeConversion_gg[11];
16433
16434 /* Sum: '<S513>/Add' incorporates:
16435 * Constant: '<S513>/Constant'
16436 */
16437 L4_MABX_B.SPN542_EnginePercentTorqueAtPoi = L4_MABX_B.DataTypeConversion_l +
16438 L4_MABX_P.Constant_Value_jz;
16439
16440 /* DataTypeConversion: '<S404>/Data Type Conversion7' */
16441 L4_MABX_B.DataTypeConversion7 = L4_MABX_B.SPN542_EnginePercentTorqueAtPoi;
16442
16443 /* DataTypeConversion: '<S514>/Data Type Conversion' */
16444 L4_MABX_B.DataTypeConversion_k3 = L4_MABX_B.DataTypeConversion_gg[12];
16445
16446 /* DataTypeConversion: '<S514>/Data Type Conversion1' */
16447 L4_MABX_B.DataTypeConversion1_o = L4_MABX_B.DataTypeConversion_gg[13];
16448
16449 /* ArithShift: '<S514>/Shift Arithmetic' */
16450 L4_MABX_B.ShiftArithmetic_o = (uint16_T)(L4_MABX_B.DataTypeConversion1_o << 8);
16451
16452 /* S-Function (sfix_bitop): '<S540>/Operator' */
16453 L4_MABX_B.Operator_mr = (uint16_T)(L4_MABX_B.DataTypeConversion_k3 |
16454 L4_MABX_B.ShiftArithmetic_o);
16455
16456 /* DataTypeConversion: '<S540>/DataType' */
16457 L4_MABX_B.DataType_aa = L4_MABX_B.Operator_mr;
16458
16459 /* DataTypeConversion: '<S514>/Data Type Conversion2' */
16460 L4_MABX_B.DataTypeConversion2_lt = L4_MABX_B.DataType_aa;
16461
16462 /* Product: '<S514>/Product' incorporates:
16463 * Constant: '<S514>/Constant'
16464 */
16465 L4_MABX_B.SPN531_EngineSpeedAtPoint5 = L4_MABX_B.DataTypeConversion2_lt *
16466 L4_MABX_P.Constant_Value_e2;
16467
16468 /* DataTypeConversion: '<S404>/Data Type Conversion8' */
16469 L4_MABX_B.DataTypeConversion8 = L4_MABX_B.SPN531_EngineSpeedAtPoint5;
16470
16471 /* DataTypeConversion: '<S515>/Data Type Conversion' */
16472 L4_MABX_B.DataTypeConversion_n = L4_MABX_B.DataTypeConversion_gg[14];
16473
16474 /* Sum: '<S515>/Add' incorporates:
16475 * Constant: '<S515>/Constant'
16476 */
16477 L4_MABX_B.SPN543_EnginePercentTorqueAtPoi = L4_MABX_B.DataTypeConversion_n +
16478 L4_MABX_P.Constant_Value_pl;
16479
16480 /* DataTypeConversion: '<S404>/Data Type Conversion9' */
16481 L4_MABX_B.DataTypeConversion9 = L4_MABX_B.SPN543_EnginePercentTorqueAtPoi;
16482
16483 /* DataTypeConversion: '<S461>/Data Type Conversion8' */
16484 L4_MABX_B.RX_status_k = (L4_MABX_B.SFunction1_o9_ph != 0.0);
16485
16486 /* MultiPortSwitch: '<S407>/Multiport_Switch' */
16487 L4_MABX_B.RX_status_j = L4_MABX_B.RX_status_k;
16488
16489 /* DataTypeConversion: '<S461>/Data Type Conversion9' */
16490 L4_MABX_B.RX_time = L4_MABX_B.SFunction1_o10_kx;
16491
16492 /* MultiPortSwitch: '<S407>/Multiport_Switch' */
16493 L4_MABX_B.RX_time_f = L4_MABX_B.RX_time;
16494
16495 /* DataTypeConversion: '<S461>/Data Type Conversion10' */
16496 L4_MABX_B.RX_delta_time = L4_MABX_B.SFunction1_o11_jf;
16497
16498 /* MultiPortSwitch: '<S407>/Multiport_Switch' */
16499 L4_MABX_B.RX_delta_time_g = L4_MABX_B.RX_delta_time;
16500
16501 /* RelationalOperator: '<S465>/Operator' incorporates:
16502 * Constant: '<S407>/Constant'
16503 * Constant: '<S462>/Constant1'
16504 */
16505 L4_MABX_B.Operator_bf = (L4_MABX_P.Constant_Value_l ==
16506 L4_MABX_P.Constant1_Value_it);
16507
16508 /* RelationalOperator: '<S466>/Operator' incorporates:
16509 * Constant: '<S407>/Constant'
16510 * Constant: '<S462>/Constant2'
16511 */
16512 L4_MABX_B.Operator_b5 = (L4_MABX_P.Constant_Value_l ==
16513 L4_MABX_P.Constant2_Value_j);
16514
16515 /* RelationalOperator: '<S467>/Operator' incorporates:
16516 * Constant: '<S407>/Constant'
16517 * Constant: '<S462>/Constant3'
16518 */
16519 L4_MABX_B.Operator_jd = (L4_MABX_P.Constant_Value_l ==
16520 L4_MABX_P.Constant3_Value_b);
16521
16522 /* RelationalOperator: '<S468>/Operator' incorporates:
16523 * Constant: '<S407>/Constant'
16524 * Constant: '<S462>/Constant4'
16525 */
16526 L4_MABX_B.Operator_djo = (L4_MABX_P.Constant_Value_l ==
16527 L4_MABX_P.Constant4_Value_nx);
16528
16529 /* RelationalOperator: '<S469>/Operator' incorporates:
16530 * Constant: '<S407>/Constant'
16531 * Constant: '<S462>/Constant5'
16532 */
16533 L4_MABX_B.Operator_pi = (L4_MABX_P.Constant_Value_l ==
16534 L4_MABX_P.Constant5_Value_c);
16535
16536 /* DataTypeConversion: '<S470>/Data Type Conversion9' */
16537 L4_MABX_B.RX_time_i = L4_MABX_B.SFunction1_o10_b4;
16538
16539 /* MultiPortSwitch: '<S408>/Multiport_Switch' */
16540 L4_MABX_B.RX_time_h = L4_MABX_B.RX_time_i;
16541
16542 /* DataTypeConversion: '<S470>/Data Type Conversion10' */
16543 L4_MABX_B.RX_delta_time_d = L4_MABX_B.SFunction1_o11_pn;
16544
16545 /* MultiPortSwitch: '<S408>/Multiport_Switch' */
16546 L4_MABX_B.RX_delta_time_k = L4_MABX_B.RX_delta_time_d;
16547
16548 /* RelationalOperator: '<S474>/Operator' incorporates:
16549 * Constant: '<S408>/Constant'
16550 * Constant: '<S471>/Constant1'
16551 */
16552 L4_MABX_B.Operator_nmv = (L4_MABX_P.Constant_Value_jc ==
16553 L4_MABX_P.Constant1_Value_jq);
16554
16555 /* RelationalOperator: '<S475>/Operator' incorporates:
16556 * Constant: '<S408>/Constant'
16557 * Constant: '<S471>/Constant2'
16558 */
16559 L4_MABX_B.Operator_ika = (L4_MABX_P.Constant_Value_jc ==
16560 L4_MABX_P.Constant2_Value_k);
16561
16562 /* RelationalOperator: '<S476>/Operator' incorporates:
16563 * Constant: '<S408>/Constant'
16564 * Constant: '<S471>/Constant3'
16565 */
16566 L4_MABX_B.Operator_hl = (L4_MABX_P.Constant_Value_jc ==
16567 L4_MABX_P.Constant3_Value_e);
16568
16569 /* RelationalOperator: '<S477>/Operator' incorporates:
16570 * Constant: '<S408>/Constant'
16571 * Constant: '<S471>/Constant4'
16572 */
16573 L4_MABX_B.Operator_bd2 = (L4_MABX_P.Constant_Value_jc ==
16574 L4_MABX_P.Constant4_Value_p);
16575
16576 /* RelationalOperator: '<S478>/Operator' incorporates:
16577 * Constant: '<S408>/Constant'
16578 * Constant: '<S471>/Constant5'
16579 */
16580 L4_MABX_B.Operator_lx = (L4_MABX_P.Constant_Value_jc ==
16581 L4_MABX_P.Constant5_Value_h);
16582
16583 /* DataTypeConversion: '<S479>/Data Type Conversion1' */
16584 L4_MABX_B.SpeedOfForwardVehicle = L4_MABX_B.SFunction1_o1_p1;
16585
16586 /* DataTypeConversion: '<S479>/Data Type Conversion10' */
16587 L4_MABX_B.RX_delta_time_kp = L4_MABX_B.SFunction1_o13_k;
16588
16589 /* DataTypeConversion: '<S479>/Data Type Conversion11' */
16590 L4_MABX_B.ACCSystemShutoffWarning = L4_MABX_B.SFunction1_o8_hg;
16591
16592 /* DataTypeConversion: '<S479>/Data Type Conversion2' */
16593 L4_MABX_B.DistanceToForwardVehicle = L4_MABX_B.SFunction1_o2_jv;
16594
16595 /* DataTypeConversion: '<S479>/Data Type Conversion3' */
16596 L4_MABX_B.AdaptiveCruiseCtrlSetSpeed = L4_MABX_B.SFunction1_o3_he;
16597
16598 /* DataTypeConversion: '<S479>/Data Type Conversion4' */
16599 L4_MABX_B.AdaptiveCruiseCtrlMode = L4_MABX_B.SFunction1_o4_ir;
16600
16601 /* DataTypeConversion: '<S479>/Data Type Conversion5' */
16602 L4_MABX_B.AdptveCruiseCtrlSetDistanceMode = L4_MABX_B.SFunction1_o5_b2;
16603
16604 /* DataTypeConversion: '<S479>/Data Type Conversion6' */
16605 L4_MABX_B.RoadCurvature = L4_MABX_B.SFunction1_o6_cb;
16606
16607 /* DataTypeConversion: '<S479>/Data Type Conversion7' */
16608 L4_MABX_B.ACCTargetDetected = L4_MABX_B.SFunction1_o7_bf;
16609
16610 /* DataTypeConversion: '<S479>/Data Type Conversion8' */
16611 L4_MABX_B.RX_status_jw = (L4_MABX_B.SFunction1_o11_p != 0.0);
16612
16613 /* DataTypeConversion: '<S479>/Data Type Conversion9' */
16614 L4_MABX_B.RX_time_a = L4_MABX_B.SFunction1_o12_db;
16615
16616 /* Outputs for Enabled SubSystem: '<S481>/AEBS1_A0' incorporates:
16617 * EnablePort: '<S482>/Enable'
16618 */
16619 /* Constant: '<S410>/Constant' */
16620 if (L4_MABX_P.Constant_Value_ll) {
16621 /* S-Function (rti_commonblock): '<S482>/S-Function1' */
16622 /* This comment workarounds a code generation problem */
16623
16624 /* dSPACE RTICAN RX Message Block: "AEBS1_A0" Id:217067306 */
16625 {
16626 UInt32 *CAN_Msg;
16627 static dsfloat time_old = 0.0;
16628
16629 /* Read status and timestamp info (previous message) */
16630 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02F2A].timestamp !=
16631 time_old) {
16632 /* ... save timestamp info for the calculation of the RX status
16633 during the consecutive sample hit*/
16634 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02F2A].
16635 timestamp;
16636
16637 /* ... set the processed flag to one */
16638 L4_MABX_B.SFunction1_o6_b = 1.0;
16639 L4_MABX_B.SFunction1_o7_b = (real_T)
16640 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02F2A].timestamp;
16641 L4_MABX_B.SFunction1_o8_ll = (real_T)
16642 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02F2A].deltatime;
16643 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02F2A].data;
16644
16645 /* Decode CAN message */
16646 {
16647 {
16648 rtican_Signal_t CAN_Sgn;
16649
16650 /* ...... "AdvEmergencyBrkSysState" (0|4, standard signal, unsigned int, little endian) */
16651 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
16652 CAN_Sgn.UnsignedSgn &= 0x0000000F;
16653 L4_MABX_B.SFunction1_o1_db = ((real_T) CAN_Sgn.UnsignedSgn);
16654
16655 /* ...... "CollisionWarningLevel" (4|4, standard signal, unsigned int, little endian) */
16656 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
16657 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
16658 CAN_Sgn.UnsignedSgn &= 0x0000000F;
16659 L4_MABX_B.SFunction1_o2_be = ((real_T) CAN_Sgn.UnsignedSgn);
16660
16661 /* ...... "RelObjctDetForAdvEmergBrakingSys" (8|3, standard signal, unsigned int, little endian) */
16662 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
16663 CAN_Sgn.UnsignedSgn &= 0x00000007;
16664 L4_MABX_B.SFunction1_o3_f5 = ((real_T) CAN_Sgn.UnsignedSgn);
16665
16666 /* ...... "BendOffProbabOfRelevantObject" (12|3, standard signal, unsigned int, little endian) */
16667 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
16668 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
16669 CAN_Sgn.UnsignedSgn &= 0x00000007;
16670 L4_MABX_B.SFunction1_o4_aw = ((real_T) CAN_Sgn.UnsignedSgn);
16671
16672 /* ...... "TimeToCollisionWithRelevantObj" (16|8, standard signal, unsigned int, little endian) */
16673 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
16674 CAN_Sgn.UnsignedSgn &= 0x000000FF;
16675 L4_MABX_B.SFunction1_o5_gr = ((real_T) CAN_Sgn.UnsignedSgn);
16676 }
16677 }
16678 } else {
16679 /* set RX status to 0 because no new message has arrived */
16680 L4_MABX_B.SFunction1_o6_b = 0.0;
16681 }
16682 }
16683 }
16684
16685 /* End of Constant: '<S410>/Constant' */
16686 /* End of Outputs for SubSystem: '<S481>/AEBS1_A0' */
16687
16688 /* DataTypeConversion: '<S481>/Data Type Conversion10' */
16689 L4_MABX_B.RX_delta_time_n = L4_MABX_B.SFunction1_o8_ll;
16690
16691 /* DataTypeConversion: '<S481>/Data Type Conversion8' */
16692 L4_MABX_B.RX_status_bq = (L4_MABX_B.SFunction1_o6_b != 0.0);
16693
16694 /* DataTypeConversion: '<S481>/Data Type Conversion9' */
16695 L4_MABX_B.RX_time_hz = L4_MABX_B.SFunction1_o7_b;
16696
16697 /* DataTypeConversion: '<S483>/Data Type Conversion10' */
16698 L4_MABX_B.RX_delta_time_a = L4_MABX_B.SFunction1_o11_o;
16699
16700 /* DataTypeConversion: '<S483>/Data Type Conversion8' */
16701 L4_MABX_B.RX_status_jj = (L4_MABX_B.SFunction1_o9_ni != 0.0);
16702
16703 /* DataTypeConversion: '<S483>/Data Type Conversion9' */
16704 L4_MABX_B.RX_time_ir = L4_MABX_B.SFunction1_o10_ll;
16705
16706 /* DataTypeConversion: '<S485>/Data Type Conversion10' */
16707 L4_MABX_B.RX_delta_time_ny = L4_MABX_B.SFunction1_o8_fw;
16708
16709 /* DataTypeConversion: '<S485>/Data Type Conversion8' */
16710 L4_MABX_B.RX_status_kt = (L4_MABX_B.SFunction1_o6_nu != 0.0);
16711
16712 /* DataTypeConversion: '<S485>/Data Type Conversion9' */
16713 L4_MABX_B.RX_time_p = L4_MABX_B.SFunction1_o7_lg;
16714
16715 /* Outputs for Enabled SubSystem: '<S487>/B2' incorporates:
16716 * EnablePort: '<S488>/Enable'
16717 */
16718 /* Constant: '<S413>/Constant' */
16719 if (L4_MABX_P.Constant_Value_oj > 0.0) {
16720 /* S-Function (rti_commonblock): '<S488>/S-Function1' */
16721 /* This comment workarounds a code generation problem */
16722
16723 /* dSPACE RTICAN RX Message Block: "B2" Id:418451505 */
16724 {
16725 UInt32 *CAN_Msg;
16726 static dsfloat time_old = 0.0;
16727
16728 /* Read status and timestamp info (previous message) */
16729 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F11031].timestamp !=
16730 time_old) {
16731 /* ... save timestamp info for the calculation of the RX status
16732 during the consecutive sample hit*/
16733 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F11031].
16734 timestamp;
16735
16736 /* ... set the processed flag to one */
16737 L4_MABX_B.SFunction1_o3_br = 1.0;
16738 L4_MABX_B.SFunction1_o4_m3 = (real_T)
16739 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F11031].timestamp;
16740 L4_MABX_B.SFunction1_o5_hzp = (real_T)
16741 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F11031].deltatime;
16742 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F11031].data;
16743
16744 /* Decode CAN message */
16745 {
16746 {
16747 rtican_Signal_t CAN_Sgn;
16748
16749 /* ...... "BrakeAppPressDemanded" (0|16, standard signal, unsigned int, little endian) */
16750 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
16751 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
16752 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
16753 L4_MABX_B.SFunction1_o1_dt = 0.1 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
16754
16755 /* ...... "BrakeSwitch2" (16|2, standard signal, unsigned int, little endian) */
16756 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
16757 CAN_Sgn.UnsignedSgn &= 0x00000003;
16758 L4_MABX_B.SFunction1_o2_kr = ((real_T) CAN_Sgn.UnsignedSgn);
16759 }
16760 }
16761 } else {
16762 /* set RX status to 0 because no new message has arrived */
16763 L4_MABX_B.SFunction1_o3_br = 0.0;
16764 }
16765 }
16766 }
16767
16768 /* End of Constant: '<S413>/Constant' */
16769 /* End of Outputs for SubSystem: '<S487>/B2' */
16770
16771 /* DataTypeConversion: '<S487>/Data Type Conversion10' */
16772 L4_MABX_B.RX_delta_time_d0 = L4_MABX_B.SFunction1_o5_hzp;
16773
16774 /* DataTypeConversion: '<S487>/Data Type Conversion8' */
16775 L4_MABX_B.RX_status_a = (L4_MABX_B.SFunction1_o3_br != 0.0);
16776
16777 /* DataTypeConversion: '<S487>/Data Type Conversion9' */
16778 L4_MABX_B.RX_time_g = L4_MABX_B.SFunction1_o4_m3;
16779
16780 /* Outputs for Enabled SubSystem: '<S489>/Tracks' incorporates:
16781 * EnablePort: '<S490>/Enable'
16782 */
16783 /* Constant: '<S414>/Constant' */
16784 if (L4_MABX_P.Constant_Value_pr) {
16785 /* S-Function (rti_commonblock): '<S490>/S-Function1' */
16786 /* This comment workarounds a code generation problem */
16787
16788 /* dSPACE RTICAN RX Message Block: "Tracks" Id:1635 */
16789 {
16790 UInt32 *CAN_Msg;
16791 static dsfloat time_old = 0.0;
16792
16793 /* Read status and timestamp info (previous message) */
16794 if (can_type1_M2_C1_STD[CANTP1_M2_C1_RXSRVC_STD_0x663].timestamp !=
16795 time_old) {
16796 /* ... save timestamp info for the calculation of the RX status
16797 during the consecutive sample hit*/
16798 time_old = can_type1_M2_C1_STD[CANTP1_M2_C1_RXSRVC_STD_0x663].timestamp;
16799
16800 /* ... set the processed flag to one */
16801 L4_MABX_B.SFunction1_o72 = 1.0;
16802 L4_MABX_B.SFunction1_o73 = (real_T)
16803 can_type1_M2_C1_STD[CANTP1_M2_C1_RXSRVC_STD_0x663].timestamp;
16804 L4_MABX_B.SFunction1_o74 = (real_T)
16805 can_type1_M2_C1_STD[CANTP1_M2_C1_RXSRVC_STD_0x663].deltatime;
16806 CAN_Msg = can_type1_M2_C1_STD[CANTP1_M2_C1_RXSRVC_STD_0x663].data;
16807
16808 /* Decode CAN message */
16809 {
16810 {
16811 rtican_Signal_t CAN_Sgn;
16812 UInt32 modeSignal;
16813
16814 /* ...... "track_multiplexor" (56|8, mode signal, unsigned int, motorola back.) */
16815 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
16816 CAN_Sgn.UnsignedSgn &= 0x000000FF;
16817 L4_MABX_B.SFunction1_o71 = ((real_T) CAN_Sgn.UnsignedSgn);
16818 modeSignal = (UInt32) L4_MABX_B.SFunction1_o71;
16819 if (modeSignal == 4) {
16820 /* ...... "tr0_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
16821 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16822 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16823 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
16824 L4_MABX_B.SFunction1_o1_bd = ((real_T) CAN_Sgn.UnsignedSgn);
16825 }
16826
16827 if (modeSignal == 5) {
16828 /* ...... "tr0_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
16829 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16830 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16831 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16832 if (CAN_Sgn.SignedSgn >> 15) {
16833 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16834 }
16835
16836 L4_MABX_B.SFunction1_o2_cv = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
16837 );
16838 }
16839
16840 if (modeSignal == 12) {
16841 /* ...... "tr1_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
16842 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16843 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16844 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
16845 L4_MABX_B.SFunction1_o3_c4 = ((real_T) CAN_Sgn.UnsignedSgn);
16846 }
16847
16848 if (modeSignal == 13) {
16849 /* ...... "tr1_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
16850 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16851 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16852 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16853 if (CAN_Sgn.SignedSgn >> 15) {
16854 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16855 }
16856
16857 L4_MABX_B.SFunction1_o4_dl = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
16858 );
16859 }
16860
16861 if (modeSignal == 20) {
16862 /* ...... "tr2_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
16863 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16864 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16865 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
16866 L4_MABX_B.SFunction1_o5_at = ((real_T) CAN_Sgn.UnsignedSgn);
16867 }
16868
16869 if (modeSignal == 21) {
16870 /* ...... "tr2_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
16871 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16872 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16873 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16874 if (CAN_Sgn.SignedSgn >> 15) {
16875 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16876 }
16877
16878 L4_MABX_B.SFunction1_o6_n = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
16879 );
16880 }
16881
16882 if (modeSignal == 28) {
16883 /* ...... "tr3_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
16884 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16885 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16886 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
16887 L4_MABX_B.SFunction1_o7_gr = ((real_T) CAN_Sgn.UnsignedSgn);
16888 }
16889
16890 if (modeSignal == 29) {
16891 /* ...... "tr3_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
16892 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16893 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16894 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16895 if (CAN_Sgn.SignedSgn >> 15) {
16896 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16897 }
16898
16899 L4_MABX_B.SFunction1_o8_cf = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
16900 );
16901 }
16902
16903 if (modeSignal == 36) {
16904 /* ...... "tr4_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
16905 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16906 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16907 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
16908 L4_MABX_B.SFunction1_o9_ba = ((real_T) CAN_Sgn.UnsignedSgn);
16909 }
16910
16911 if (modeSignal == 37) {
16912 /* ...... "tr4_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
16913 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16914 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16915 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16916 if (CAN_Sgn.SignedSgn >> 15) {
16917 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16918 }
16919
16920 L4_MABX_B.SFunction1_o10_g = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
16921 );
16922 }
16923
16924 if (modeSignal == 44) {
16925 /* ...... "tr5_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
16926 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16927 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16928 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
16929 L4_MABX_B.SFunction1_o11_h = ((real_T) CAN_Sgn.UnsignedSgn);
16930 }
16931
16932 if (modeSignal == 45) {
16933 /* ...... "tr5_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
16934 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16935 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16936 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16937 if (CAN_Sgn.SignedSgn >> 15) {
16938 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16939 }
16940
16941 L4_MABX_B.SFunction1_o12_hk = 0.001 * ( ((real_T)
16942 CAN_Sgn.SignedSgn) );
16943 }
16944
16945 if (modeSignal == 52) {
16946 /* ...... "tr6_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
16947 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16948 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16949 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
16950 L4_MABX_B.SFunction1_o13_a = ((real_T) CAN_Sgn.UnsignedSgn);
16951 }
16952
16953 if (modeSignal == 53) {
16954 /* ...... "tr6_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
16955 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16956 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16957 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16958 if (CAN_Sgn.SignedSgn >> 15) {
16959 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16960 }
16961
16962 L4_MABX_B.SFunction1_o14_g = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
16963 );
16964 }
16965
16966 if (modeSignal == 60) {
16967 /* ...... "tr7_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
16968 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16969 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16970 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
16971 L4_MABX_B.SFunction1_o15_c = ((real_T) CAN_Sgn.UnsignedSgn);
16972 }
16973
16974 if (modeSignal == 61) {
16975 /* ...... "tr7_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
16976 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16977 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16978 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16979 if (CAN_Sgn.SignedSgn >> 15) {
16980 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16981 }
16982
16983 L4_MABX_B.SFunction1_o16_o = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
16984 );
16985 }
16986
16987 if (modeSignal == 68) {
16988 /* ...... "tr8_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
16989 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16990 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16991 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
16992 L4_MABX_B.SFunction1_o17_l = ((real_T) CAN_Sgn.UnsignedSgn);
16993 }
16994
16995 if (modeSignal == 69) {
16996 /* ...... "tr8_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
16997 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16998 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16999 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17000 if (CAN_Sgn.SignedSgn >> 15) {
17001 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17002 }
17003
17004 L4_MABX_B.SFunction1_o18_c = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
17005 );
17006 }
17007
17008 if (modeSignal == 76) {
17009 /* ...... "tr9_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17010 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17011 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17012 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17013 L4_MABX_B.SFunction1_o19_l = ((real_T) CAN_Sgn.UnsignedSgn);
17014 }
17015
17016 if (modeSignal == 77) {
17017 /* ...... "tr9_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17018 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17019 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17020 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17021 if (CAN_Sgn.SignedSgn >> 15) {
17022 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17023 }
17024
17025 L4_MABX_B.SFunction1_o20_m = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
17026 );
17027 }
17028
17029 if (modeSignal == 6) {
17030 /* ...... "tr0_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17031 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17032 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17033 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17034 CAN_Sgn.SignedSgn &= 0x000003FF;
17035 if (CAN_Sgn.SignedSgn >> 9) {
17036 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17037 }
17038
17039 L4_MABX_B.SFunction1_o21_e = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17040 }
17041
17042 if (modeSignal == 14) {
17043 /* ...... "tr1_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17044 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17045 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17046 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17047 CAN_Sgn.SignedSgn &= 0x000003FF;
17048 if (CAN_Sgn.SignedSgn >> 9) {
17049 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17050 }
17051
17052 L4_MABX_B.SFunction1_o22_df = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn)
17053 );
17054 }
17055
17056 if (modeSignal == 22) {
17057 /* ...... "tr2_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17058 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17059 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17060 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17061 CAN_Sgn.SignedSgn &= 0x000003FF;
17062 if (CAN_Sgn.SignedSgn >> 9) {
17063 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17064 }
17065
17066 L4_MABX_B.SFunction1_o23_h = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17067 }
17068
17069 if (modeSignal == 30) {
17070 /* ...... "tr3_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17071 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17072 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17073 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17074 CAN_Sgn.SignedSgn &= 0x000003FF;
17075 if (CAN_Sgn.SignedSgn >> 9) {
17076 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17077 }
17078
17079 L4_MABX_B.SFunction1_o24_h = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17080 }
17081
17082 if (modeSignal == 38) {
17083 /* ...... "tr4_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17084 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17085 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17086 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17087 CAN_Sgn.SignedSgn &= 0x000003FF;
17088 if (CAN_Sgn.SignedSgn >> 9) {
17089 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17090 }
17091
17092 L4_MABX_B.SFunction1_o25_f = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17093 }
17094
17095 if (modeSignal == 46) {
17096 /* ...... "tr5_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17097 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17098 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17099 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17100 CAN_Sgn.SignedSgn &= 0x000003FF;
17101 if (CAN_Sgn.SignedSgn >> 9) {
17102 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17103 }
17104
17105 L4_MABX_B.SFunction1_o26_m = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17106 }
17107
17108 if (modeSignal == 54) {
17109 /* ...... "tr6_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17110 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17111 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17112 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17113 CAN_Sgn.SignedSgn &= 0x000003FF;
17114 if (CAN_Sgn.SignedSgn >> 9) {
17115 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17116 }
17117
17118 L4_MABX_B.SFunction1_o27_a = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17119 }
17120
17121 if (modeSignal == 62) {
17122 /* ...... "tr7_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17123 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17124 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17125 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17126 CAN_Sgn.SignedSgn &= 0x000003FF;
17127 if (CAN_Sgn.SignedSgn >> 9) {
17128 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17129 }
17130
17131 L4_MABX_B.SFunction1_o28_m = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17132 }
17133
17134 if (modeSignal == 70) {
17135 /* ...... "tr8_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17136 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17137 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17138 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17139 CAN_Sgn.SignedSgn &= 0x000003FF;
17140 if (CAN_Sgn.SignedSgn >> 9) {
17141 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17142 }
17143
17144 L4_MABX_B.SFunction1_o29 = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17145 }
17146
17147 if (modeSignal == 78) {
17148 /* ...... "tr9_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17149 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17150 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17151 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17152 CAN_Sgn.SignedSgn &= 0x000003FF;
17153 if (CAN_Sgn.SignedSgn >> 9) {
17154 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17155 }
17156
17157 L4_MABX_B.SFunction1_o30 = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17158 }
17159
17160 if (modeSignal == 4) {
17161 /* ...... "tr0_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17162 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17163 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17164 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17165 L4_MABX_B.SFunction1_o31 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17166 );
17167 }
17168
17169 if (modeSignal == 12) {
17170 /* ...... "tr1_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17171 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17172 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17173 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17174 L4_MABX_B.SFunction1_o32 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17175 );
17176 }
17177
17178 if (modeSignal == 20) {
17179 /* ...... "tr2_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17180 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17181 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17182 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17183 L4_MABX_B.SFunction1_o33 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17184 );
17185 }
17186
17187 if (modeSignal == 28) {
17188 /* ...... "tr3_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17189 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17190 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17191 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17192 L4_MABX_B.SFunction1_o34 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17193 );
17194 }
17195
17196 if (modeSignal == 36) {
17197 /* ...... "tr4_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17198 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17199 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17200 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17201 L4_MABX_B.SFunction1_o35 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17202 );
17203 }
17204
17205 if (modeSignal == 44) {
17206 /* ...... "tr5_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17207 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17208 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17209 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17210 L4_MABX_B.SFunction1_o36 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17211 );
17212 }
17213
17214 if (modeSignal == 52) {
17215 /* ...... "tr6_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17216 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17217 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17218 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17219 L4_MABX_B.SFunction1_o37 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17220 );
17221 }
17222
17223 if (modeSignal == 60) {
17224 /* ...... "tr7_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17225 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17226 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17227 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17228 L4_MABX_B.SFunction1_o38 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17229 );
17230 }
17231
17232 if (modeSignal == 68) {
17233 /* ...... "tr8_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17234 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17235 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17236 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17237 L4_MABX_B.SFunction1_o39 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17238 );
17239 }
17240
17241 if (modeSignal == 76) {
17242 /* ...... "tr9_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17243 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17244 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17245 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17246 L4_MABX_B.SFunction1_o40 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17247 );
17248 }
17249
17250 if (modeSignal == 6) {
17251 /* ...... "tr0_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17252 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17253 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17254 L4_MABX_B.SFunction1_o41 = 0.00392156862745098 * ( ((real_T)
17255 CAN_Sgn.UnsignedSgn) );
17256 }
17257
17258 if (modeSignal == 14) {
17259 /* ...... "tr1_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17260 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17261 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17262 L4_MABX_B.SFunction1_o42 = 0.00392156862745098 * ( ((real_T)
17263 CAN_Sgn.UnsignedSgn) );
17264 }
17265
17266 if (modeSignal == 22) {
17267 /* ...... "tr2_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17268 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17269 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17270 L4_MABX_B.SFunction1_o43 = 0.00392156862745098 * ( ((real_T)
17271 CAN_Sgn.UnsignedSgn) );
17272 }
17273
17274 if (modeSignal == 30) {
17275 /* ...... "tr3_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17276 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17277 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17278 L4_MABX_B.SFunction1_o44 = 0.00392156862745098 * ( ((real_T)
17279 CAN_Sgn.UnsignedSgn) );
17280 }
17281
17282 if (modeSignal == 38) {
17283 /* ...... "tr4_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17284 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17285 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17286 L4_MABX_B.SFunction1_o45 = 0.00392156862745098 * ( ((real_T)
17287 CAN_Sgn.UnsignedSgn) );
17288 }
17289
17290 if (modeSignal == 46) {
17291 /* ...... "tr5_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17292 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17293 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17294 L4_MABX_B.SFunction1_o46 = 0.00392156862745098 * ( ((real_T)
17295 CAN_Sgn.UnsignedSgn) );
17296 }
17297
17298 if (modeSignal == 54) {
17299 /* ...... "tr6_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17300 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17301 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17302 L4_MABX_B.SFunction1_o47 = 0.00392156862745098 * ( ((real_T)
17303 CAN_Sgn.UnsignedSgn) );
17304 }
17305
17306 if (modeSignal == 62) {
17307 /* ...... "tr7_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17308 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17309 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17310 L4_MABX_B.SFunction1_o48 = 0.00392156862745098 * ( ((real_T)
17311 CAN_Sgn.UnsignedSgn) );
17312 }
17313
17314 if (modeSignal == 70) {
17315 /* ...... "tr8_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17316 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17317 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17318 L4_MABX_B.SFunction1_o49 = 0.00392156862745098 * ( ((real_T)
17319 CAN_Sgn.UnsignedSgn) );
17320 }
17321
17322 if (modeSignal == 78) {
17323 /* ...... "tr9_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17324 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17325 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17326 L4_MABX_B.SFunction1_o50 = 0.00392156862745098 * ( ((real_T)
17327 CAN_Sgn.UnsignedSgn) );
17328 }
17329
17330 if (modeSignal == 4) {
17331 /* ...... "tr0_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17332 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17333 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17334 CAN_Sgn.SignedSgn &= 0x00003FFF;
17335 if (CAN_Sgn.SignedSgn >> 13) {
17336 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17337 }
17338
17339 L4_MABX_B.SFunction1_o51 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17340 }
17341
17342 if (modeSignal == 5) {
17343 /* ...... "tr0_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17344 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17345 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17346 L4_MABX_B.SFunction1_o52 = -8.8 + ( 0.05 * ( ((real_T)
17347 CAN_Sgn.UnsignedSgn) ) );
17348 }
17349
17350 if (modeSignal == 12) {
17351 /* ...... "tr1_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17352 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17353 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17354 CAN_Sgn.SignedSgn &= 0x00003FFF;
17355 if (CAN_Sgn.SignedSgn >> 13) {
17356 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17357 }
17358
17359 L4_MABX_B.SFunction1_o53 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17360 }
17361
17362 if (modeSignal == 13) {
17363 /* ...... "tr1_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17364 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17365 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17366 L4_MABX_B.SFunction1_o54 = -8.8 + ( 0.05 * ( ((real_T)
17367 CAN_Sgn.UnsignedSgn) ) );
17368 }
17369
17370 if (modeSignal == 20) {
17371 /* ...... "tr2_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17372 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17373 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17374 CAN_Sgn.SignedSgn &= 0x00003FFF;
17375 if (CAN_Sgn.SignedSgn >> 13) {
17376 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17377 }
17378
17379 L4_MABX_B.SFunction1_o55 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17380 }
17381
17382 if (modeSignal == 21) {
17383 /* ...... "tr2_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17384 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17385 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17386 L4_MABX_B.SFunction1_o56 = -8.8 + ( 0.05 * ( ((real_T)
17387 CAN_Sgn.UnsignedSgn) ) );
17388 }
17389
17390 if (modeSignal == 28) {
17391 /* ...... "tr3_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17392 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17393 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17394 CAN_Sgn.SignedSgn &= 0x00003FFF;
17395 if (CAN_Sgn.SignedSgn >> 13) {
17396 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17397 }
17398
17399 L4_MABX_B.SFunction1_o57 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17400 }
17401
17402 if (modeSignal == 29) {
17403 /* ...... "tr3_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17404 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17405 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17406 L4_MABX_B.SFunction1_o58 = -8.8 + ( 0.05 * ( ((real_T)
17407 CAN_Sgn.UnsignedSgn) ) );
17408 }
17409
17410 if (modeSignal == 36) {
17411 /* ...... "tr4_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17412 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17413 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17414 CAN_Sgn.SignedSgn &= 0x00003FFF;
17415 if (CAN_Sgn.SignedSgn >> 13) {
17416 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17417 }
17418
17419 L4_MABX_B.SFunction1_o59 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17420 }
17421
17422 if (modeSignal == 37) {
17423 /* ...... "tr4_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17424 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17425 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17426 L4_MABX_B.SFunction1_o60 = -8.8 + ( 0.05 * ( ((real_T)
17427 CAN_Sgn.UnsignedSgn) ) );
17428 }
17429
17430 if (modeSignal == 44) {
17431 /* ...... "tr5_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17432 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17433 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17434 CAN_Sgn.SignedSgn &= 0x00003FFF;
17435 if (CAN_Sgn.SignedSgn >> 13) {
17436 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17437 }
17438
17439 L4_MABX_B.SFunction1_o61 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17440 }
17441
17442 if (modeSignal == 45) {
17443 /* ...... "tr5_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17444 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17445 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17446 L4_MABX_B.SFunction1_o62 = -8.8 + ( 0.05 * ( ((real_T)
17447 CAN_Sgn.UnsignedSgn) ) );
17448 }
17449
17450 if (modeSignal == 52) {
17451 /* ...... "tr6_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17452 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17453 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17454 CAN_Sgn.SignedSgn &= 0x00003FFF;
17455 if (CAN_Sgn.SignedSgn >> 13) {
17456 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17457 }
17458
17459 L4_MABX_B.SFunction1_o63 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17460 }
17461
17462 if (modeSignal == 53) {
17463 /* ...... "tr6_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17464 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17465 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17466 L4_MABX_B.SFunction1_o64 = -8.8 + ( 0.05 * ( ((real_T)
17467 CAN_Sgn.UnsignedSgn) ) );
17468 }
17469
17470 if (modeSignal == 60) {
17471 /* ...... "tr7_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17472 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17473 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17474 CAN_Sgn.SignedSgn &= 0x00003FFF;
17475 if (CAN_Sgn.SignedSgn >> 13) {
17476 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17477 }
17478
17479 L4_MABX_B.SFunction1_o65 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17480 }
17481
17482 if (modeSignal == 61) {
17483 /* ...... "tr7_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17484 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17485 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17486 L4_MABX_B.SFunction1_o66 = -8.8 + ( 0.05 * ( ((real_T)
17487 CAN_Sgn.UnsignedSgn) ) );
17488 }
17489
17490 if (modeSignal == 68) {
17491 /* ...... "tr8_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17492 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17493 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17494 CAN_Sgn.SignedSgn &= 0x00003FFF;
17495 if (CAN_Sgn.SignedSgn >> 13) {
17496 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17497 }
17498
17499 L4_MABX_B.SFunction1_o67 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17500 }
17501
17502 if (modeSignal == 69) {
17503 /* ...... "tr8_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17504 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17505 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17506 L4_MABX_B.SFunction1_o68 = -8.8 + ( 0.05 * ( ((real_T)
17507 CAN_Sgn.UnsignedSgn) ) );
17508 }
17509
17510 if (modeSignal == 76) {
17511 /* ...... "tr9_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17512 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17513 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17514 CAN_Sgn.SignedSgn &= 0x00003FFF;
17515 if (CAN_Sgn.SignedSgn >> 13) {
17516 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17517 }
17518
17519 L4_MABX_B.SFunction1_o69 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17520 }
17521
17522 if (modeSignal == 77) {
17523 /* ...... "tr9_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17524 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17525 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17526 L4_MABX_B.SFunction1_o70 = -8.8 + ( 0.05 * ( ((real_T)
17527 CAN_Sgn.UnsignedSgn) ) );
17528 }
17529 }
17530 }
17531 } else {
17532 /* set RX status to 0 because no new message has arrived */
17533 L4_MABX_B.SFunction1_o72 = 0.0;
17534 }
17535 }
17536 }
17537
17538 /* End of Constant: '<S414>/Constant' */
17539 /* End of Outputs for SubSystem: '<S489>/Tracks' */
17540
17541 /* DataTypeConversion: '<S489>/Data Type Conversion10' */
17542 L4_MABX_B.Bendix_RADAR_Tracks_RX_delta_ti = L4_MABX_B.SFunction1_o74;
17543
17544 /* DataTypeConversion: '<S489>/Data Type Conversion8' */
17545 L4_MABX_B.Bendix_RADAR_Tracks_RX_status = (L4_MABX_B.SFunction1_o72 != 0.0);
17546
17547 /* DataTypeConversion: '<S489>/Data Type Conversion9' */
17548 L4_MABX_B.Bendix_RADAR_Tracks_RX_time = L4_MABX_B.SFunction1_o73;
17549
17550 /* DataTypeConversion: '<S491>/Data Type Conversion10' */
17551 L4_MABX_B.RX_delta_time_ak = L4_MABX_B.SFunction1_o23_j;
17552
17553 /* DataTypeConversion: '<S491>/Data Type Conversion8' */
17554 L4_MABX_B.RX_status_m = (L4_MABX_B.SFunction1_o21_a != 0.0);
17555
17556 /* DataTypeConversion: '<S491>/Data Type Conversion9' */
17557 L4_MABX_B.RX_time_b = L4_MABX_B.SFunction1_o22_f;
17558
17559 /* DataTypeConversion: '<S493>/Data Type Conversion10' */
17560 L4_MABX_B.RX_delta_time_ax = L4_MABX_B.SFunction1_o23_g;
17561
17562 /* DataTypeConversion: '<S493>/Data Type Conversion8' */
17563 L4_MABX_B.RX_status_md = (L4_MABX_B.SFunction1_o21_p != 0.0);
17564
17565 /* DataTypeConversion: '<S493>/Data Type Conversion9' */
17566 L4_MABX_B.RX_time_pu = L4_MABX_B.SFunction1_o22_h;
17567
17568 /* Switch: '<S495>/Switch' */
17569 if (L4_MABX_B.RX_status_g) {
17570 L4_MABX_B.RX_status_o = L4_MABX_B.RX_status_g;
17571 } else {
17572 /* DataTypeConversion: '<S495>/Data Type Conversion1' */
17573 L4_MABX_B.RX_status_i = (L4_MABX_B.SFunction1_o5_i2 != 0.0);
17574 L4_MABX_B.RX_status_o = L4_MABX_B.RX_status_i;
17575 }
17576
17577 if (L4_MABX_B.RX_status_g) {
17578 /* DataTypeConversion: '<S495>/Data Type Conversion9' */
17579 L4_MABX_B.RX_time_oc = L4_MABX_B.SFunction1_o6_jb;
17580 L4_MABX_B.RX_time_o = L4_MABX_B.RX_time_oc;
17581
17582 /* DataTypeConversion: '<S495>/Data Type Conversion10' */
17583 L4_MABX_B.RX_delta_time_ih = L4_MABX_B.SFunction1_o7_k;
17584 L4_MABX_B.RX_delta_time_l = L4_MABX_B.RX_delta_time_ih;
17585 } else {
17586 /* DataTypeConversion: '<S495>/Data Type Conversion2' */
17587 L4_MABX_B.RX_time_hn = L4_MABX_B.SFunction1_o6_pz;
17588 L4_MABX_B.RX_time_o = L4_MABX_B.RX_time_hn;
17589
17590 /* DataTypeConversion: '<S495>/Data Type Conversion3' */
17591 L4_MABX_B.RX_delta_time_hb = L4_MABX_B.SFunction1_o7_dq;
17592 L4_MABX_B.RX_delta_time_l = L4_MABX_B.RX_delta_time_hb;
17593 }
17594
17595 /* DataTypeConversion: '<S498>/Data Type Conversion10' */
17596 L4_MABX_B.RX_delta_time_f = L4_MABX_B.SFunction1_o4_er;
17597
17598 /* DataTypeConversion: '<S498>/Data Type Conversion8' */
17599 L4_MABX_B.RX_status_l = (L4_MABX_B.SFunction1_o2_dh != 0.0);
17600
17601 /* DataTypeConversion: '<S498>/Data Type Conversion9' */
17602 L4_MABX_B.RX_time_i0 = L4_MABX_B.SFunction1_o3_o5;
17603
17604 /* Outputs for Enabled SubSystem: '<S500>/EBC1_0B' incorporates:
17605 * EnablePort: '<S501>/Enable'
17606 */
17607 /* Constant: '<S419>/Constant1' */
17608 if (L4_MABX_P.Constant1_Value_l0) {
17609 /* S-Function (rti_commonblock): '<S501>/S-Function1' */
17610 /* This comment workarounds a code generation problem */
17611
17612 /* dSPACE RTICAN RX Message Block: "EBC1_0B" Id:418382091 */
17613 {
17614 UInt32 *CAN_Msg;
17615 static dsfloat time_old = 0.0;
17616
17617 /* Read status and timestamp info (previous message) */
17618 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0010B].timestamp !=
17619 time_old) {
17620 /* ... save timestamp info for the calculation of the RX status
17621 during the consecutive sample hit*/
17622 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0010B].
17623 timestamp;
17624
17625 /* ... set the processed flag to one */
17626 L4_MABX_B.SFunction1_o23_f = 1.0;
17627 L4_MABX_B.SFunction1_o24_it = (real_T)
17628 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0010B].timestamp;
17629 L4_MABX_B.SFunction1_o25_a = (real_T)
17630 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0010B].deltatime;
17631 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0010B].data;
17632
17633 /* Decode CAN message */
17634 {
17635 {
17636 rtican_Signal_t CAN_Sgn;
17637
17638 /* ...... "ASREngCtrlActive" (0|2, standard signal, unsigned int, little endian) */
17639 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17640 CAN_Sgn.UnsignedSgn &= 0x00000003;
17641 L4_MABX_B.SFunction1_o1_fc = ((real_T) CAN_Sgn.UnsignedSgn);
17642
17643 /* ...... "ASRBrakeCtrlActive" (2|2, standard signal, unsigned int, little endian) */
17644 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17645 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
17646 CAN_Sgn.UnsignedSgn &= 0x00000003;
17647 L4_MABX_B.SFunction1_o2_f1 = ((real_T) CAN_Sgn.UnsignedSgn);
17648
17649 /* ...... "AntiLockBrakingActive" (4|2, standard signal, unsigned int, little endian) */
17650 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17651 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
17652 CAN_Sgn.UnsignedSgn &= 0x00000003;
17653 L4_MABX_B.SFunction1_o3_hv = ((real_T) CAN_Sgn.UnsignedSgn);
17654
17655 /* ...... "EBSBrakeSwitch" (6|2, standard signal, unsigned int, little endian) */
17656 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17657 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
17658 CAN_Sgn.UnsignedSgn &= 0x00000003;
17659 L4_MABX_B.SFunction1_o4_kb = ((real_T) CAN_Sgn.UnsignedSgn);
17660
17661 /* ...... "BrakePedalPos" (8|8, standard signal, unsigned int, little endian) */
17662 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
17663 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17664 L4_MABX_B.SFunction1_o5_e = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
17665
17666 /* ...... "ABSOffroadSwitch" (16|2, standard signal, unsigned int, little endian) */
17667 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
17668 CAN_Sgn.UnsignedSgn &= 0x00000003;
17669 L4_MABX_B.SFunction1_o6_lb = ((real_T) CAN_Sgn.UnsignedSgn);
17670
17671 /* ...... "ASROffroadSwitch" (18|2, standard signal, unsigned int, little endian) */
17672 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
17673 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
17674 CAN_Sgn.UnsignedSgn &= 0x00000003;
17675 L4_MABX_B.SFunction1_o7_gb = ((real_T) CAN_Sgn.UnsignedSgn);
17676
17677 /* ...... "ASRHillHolderSwitch" (20|2, standard signal, unsigned int, little endian) */
17678 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
17679 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
17680 CAN_Sgn.UnsignedSgn &= 0x00000003;
17681 L4_MABX_B.SFunction1_o8_mu = ((real_T) CAN_Sgn.UnsignedSgn);
17682
17683 /* ...... "TractionCtrlOverrideSwitch" (22|2, standard signal, unsigned int, little endian) */
17684 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
17685 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
17686 CAN_Sgn.UnsignedSgn &= 0x00000003;
17687 L4_MABX_B.SFunction1_o9_no = ((real_T) CAN_Sgn.UnsignedSgn);
17688
17689 /* ...... "AccelInterlockSwitch" (24|2, standard signal, unsigned int, little endian) */
17690 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17691 CAN_Sgn.UnsignedSgn &= 0x00000003;
17692 L4_MABX_B.SFunction1_o10_mw = ((real_T) CAN_Sgn.UnsignedSgn);
17693
17694 /* ...... "EngDerateSwitch" (26|2, standard signal, unsigned int, little endian) */
17695 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17696 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
17697 CAN_Sgn.UnsignedSgn &= 0x00000003;
17698 L4_MABX_B.SFunction1_o11_m = ((real_T) CAN_Sgn.UnsignedSgn);
17699
17700 /* ...... "EngAuxShutdownSwitch" (28|2, standard signal, unsigned int, little endian) */
17701 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17702 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
17703 CAN_Sgn.UnsignedSgn &= 0x00000003;
17704 L4_MABX_B.SFunction1_o12_n = ((real_T) CAN_Sgn.UnsignedSgn);
17705
17706 /* ...... "RemoteAccelEnableSwitch" (30|2, standard signal, unsigned int, little endian) */
17707 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17708 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
17709 CAN_Sgn.UnsignedSgn &= 0x00000003;
17710 L4_MABX_B.SFunction1_o13_d = ((real_T) CAN_Sgn.UnsignedSgn);
17711
17712 /* ...... "EngRetarderSelection" (32|8, standard signal, unsigned int, little endian) */
17713 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17714 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17715 L4_MABX_B.SFunction1_o14_a = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
17716
17717 /* ...... "ABSFullyOperational" (40|2, standard signal, unsigned int, little endian) */
17718 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17719 CAN_Sgn.UnsignedSgn &= 0x00000003;
17720 L4_MABX_B.SFunction1_o15_m = ((real_T) CAN_Sgn.UnsignedSgn);
17721
17722 /* ...... "EBSRedWarningSignal" (42|2, standard signal, unsigned int, little endian) */
17723 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17724 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
17725 CAN_Sgn.UnsignedSgn &= 0x00000003;
17726 L4_MABX_B.SFunction1_o16_f = ((real_T) CAN_Sgn.UnsignedSgn);
17727
17728 /* ...... "ABS_EBSAmberWarningSignal" (44|2, standard signal, unsigned int, little endian) */
17729 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17730 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
17731 CAN_Sgn.UnsignedSgn &= 0x00000003;
17732 L4_MABX_B.SFunction1_o17_d = ((real_T) CAN_Sgn.UnsignedSgn);
17733
17734 /* ...... "ATC_ASRInformationSignal" (46|2, standard signal, unsigned int, little endian) */
17735 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17736 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
17737 CAN_Sgn.UnsignedSgn &= 0x00000003;
17738 L4_MABX_B.SFunction1_o18_f = ((real_T) CAN_Sgn.UnsignedSgn);
17739
17740 /* ...... "SrcAddrssOfCtrllngDvcFrBrkCntrl" (48|8, standard signal, unsigned int, little endian) */
17741 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17742 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17743 L4_MABX_B.SFunction1_o19_k = ((real_T) CAN_Sgn.UnsignedSgn);
17744
17745 /* ...... "HaltBrakeSwitch" (58|2, standard signal, unsigned int, little endian) */
17746 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17747 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
17748 CAN_Sgn.UnsignedSgn &= 0x00000003;
17749 L4_MABX_B.SFunction1_o20_e = ((real_T) CAN_Sgn.UnsignedSgn);
17750
17751 /* ...... "TrailerABSStatus" (60|2, standard signal, unsigned int, little endian) */
17752 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17753 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
17754 CAN_Sgn.UnsignedSgn &= 0x00000003;
17755 L4_MABX_B.SFunction1_o21_d = ((real_T) CAN_Sgn.UnsignedSgn);
17756
17757 /* ...... "TrctrMntdTrilerABSWarningSignal" (62|2, standard signal, unsigned int, little endian) */
17758 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17759 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
17760 CAN_Sgn.UnsignedSgn &= 0x00000003;
17761 L4_MABX_B.SFunction1_o22_a = ((real_T) CAN_Sgn.UnsignedSgn);
17762 }
17763 }
17764 } else {
17765 /* set RX status to 0 because no new message has arrived */
17766 L4_MABX_B.SFunction1_o23_f = 0.0;
17767 }
17768 }
17769 }
17770
17771 /* End of Constant: '<S419>/Constant1' */
17772 /* End of Outputs for SubSystem: '<S500>/EBC1_0B' */
17773
17774 /* DataTypeConversion: '<S500>/Data Type Conversion10' */
17775 L4_MABX_B.RX_delta_time_fu = L4_MABX_B.SFunction1_o25_a;
17776
17777 /* DataTypeConversion: '<S500>/Data Type Conversion8' */
17778 L4_MABX_B.RX_status_p = (L4_MABX_B.SFunction1_o23_f != 0.0);
17779
17780 /* DataTypeConversion: '<S500>/Data Type Conversion9' */
17781 L4_MABX_B.RX_time_l = L4_MABX_B.SFunction1_o24_it;
17782
17783 /* DataTypeConversion: '<S502>/Data Type Conversion10' */
17784 L4_MABX_B.RX_delta_time_lz = L4_MABX_B.SFunction1_o25_k;
17785
17786 /* DataTypeConversion: '<S502>/Data Type Conversion8' */
17787 L4_MABX_B.RX_status_bu = (L4_MABX_B.SFunction1_o23_m != 0.0);
17788
17789 /* DataTypeConversion: '<S502>/Data Type Conversion9' */
17790 L4_MABX_B.RX_time_ox = L4_MABX_B.SFunction1_o24_i;
17791
17792 /* DataTypeConversion: '<S504>/Data Type Conversion10' */
17793 L4_MABX_B.RX_delta_time_j = L4_MABX_B.SFunction1_o10_p;
17794
17795 /* DataTypeConversion: '<S504>/Data Type Conversion8' */
17796 L4_MABX_B.RX_status_he = (L4_MABX_B.SFunction1_o8_l != 0.0);
17797
17798 /* DataTypeConversion: '<S504>/Data Type Conversion9' */
17799 L4_MABX_B.RX_time_fy = L4_MABX_B.SFunction1_o9_p;
17800
17801 /* DataTypeConversion: '<S551>/Data Type Conversion10' */
17802 L4_MABX_B.RX_delta_time_p = L4_MABX_B.SFunction1_o11_ai;
17803
17804 /* DataTypeConversion: '<S551>/Data Type Conversion8' */
17805 L4_MABX_B.RX_status_ci = (L4_MABX_B.SFunction1_o9_eh != 0.0);
17806
17807 /* DataTypeConversion: '<S551>/Data Type Conversion9' */
17808 L4_MABX_B.RX_time_hh = L4_MABX_B.SFunction1_o10_bm;
17809
17810 /* Outputs for Enabled SubSystem: '<S553>/EEC2_001' incorporates:
17811 * EnablePort: '<S554>/Enable'
17812 */
17813 /* Constant: '<S424>/Enable_RX_EEC2_00' */
17814 if (L4_MABX_P.Enable_RX_EEC2_00_Value) {
17815 /* S-Function (rti_commonblock): '<S554>/S-Function1' */
17816 /* This comment workarounds a code generation problem */
17817
17818 /* dSPACE RTICAN RX Message Block: "EEC2_00" Id:217056000 */
17819 {
17820 UInt32 *CAN_Msg;
17821 static dsfloat time_old = 0.0;
17822
17823 /* Read status and timestamp info (previous message) */
17824 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0xCF00300].timestamp !=
17825 time_old) {
17826 /* ... save timestamp info for the calculation of the RX status
17827 during the consecutive sample hit*/
17828 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0xCF00300].
17829 timestamp;
17830
17831 /* ... set the processed flag to one */
17832 L4_MABX_B.SFunction1_o15_i = 1.0;
17833 L4_MABX_B.SFunction1_o16_p = (real_T)
17834 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0xCF00300].timestamp;
17835 L4_MABX_B.SFunction1_o17_p = (real_T)
17836 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0xCF00300].deltatime;
17837 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0xCF00300].data;
17838
17839 /* Decode CAN message */
17840 {
17841 {
17842 rtican_Signal_t CAN_Sgn;
17843
17844 /* ...... "SPN558_AccelPed1LowIdlSwitch" (0|2, standard signal, unsigned int, little endian) */
17845 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17846 CAN_Sgn.UnsignedSgn &= 0x00000003;
17847 L4_MABX_B.SFunction1_o1_dw = ((real_T) CAN_Sgn.UnsignedSgn);
17848
17849 /* ...... "SPN559_AccelPedKickdownSw" (2|2, standard signal, unsigned int, little endian) */
17850 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17851 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
17852 CAN_Sgn.UnsignedSgn &= 0x00000003;
17853 L4_MABX_B.SFunction1_o2_px = ((real_T) CAN_Sgn.UnsignedSgn);
17854
17855 /* ...... "SPN1437_RoadSpeedLimitStatus" (4|2, standard signal, unsigned int, little endian) */
17856 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17857 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
17858 CAN_Sgn.UnsignedSgn &= 0x00000003;
17859 L4_MABX_B.SFunction1_o3_fk = ((real_T) CAN_Sgn.UnsignedSgn);
17860
17861 /* ...... "SPN2970_AccelPed2LowIdlSwitch" (6|2, standard signal, unsigned int, little endian) */
17862 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17863 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
17864 CAN_Sgn.UnsignedSgn &= 0x00000003;
17865 L4_MABX_B.SFunction1_o4_c = ((real_T) CAN_Sgn.UnsignedSgn);
17866
17867 /* ...... "SPN91_AccelPedPos1" (8|8, standard signal, unsigned int, little endian) */
17868 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
17869 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17870 L4_MABX_B.SFunction1_o5_cd = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
17871
17872 /* ...... "SPN92_EngPercLoadAtCurrSpd" (16|8, standard signal, unsigned int, little endian) */
17873 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
17874 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17875 L4_MABX_B.SFunction1_o6_fq = ((real_T) CAN_Sgn.UnsignedSgn);
17876
17877 /* ...... "SPN974_RemAccelPedalPosition" (24|8, standard signal, unsigned int, little endian) */
17878 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17879 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17880 L4_MABX_B.SFunction1_o7_j = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
17881
17882 /* ...... "SPN29_AccelPedPos2" (32|8, standard signal, unsigned int, little endian) */
17883 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17884 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17885 L4_MABX_B.SFunction1_o8_is = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
17886
17887 /* ...... "SPN2979_VehAccelRateLimStatus" (40|2, standard signal, unsigned int, little endian) */
17888 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17889 CAN_Sgn.UnsignedSgn &= 0x00000003;
17890 L4_MABX_B.SFunction1_o9_l = ((real_T) CAN_Sgn.UnsignedSgn);
17891
17892 /* ...... "SPN5021_MomEngMaxPwrEnFdbk" (42|2, standard signal, unsigned int, little endian) */
17893 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17894 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
17895 CAN_Sgn.UnsignedSgn &= 0x00000003;
17896 L4_MABX_B.SFunction1_o10_ed = ((real_T) CAN_Sgn.UnsignedSgn);
17897
17898 /* ...... "SPN5399_DPFThermMgmtActive" (44|2, standard signal, unsigned int, little endian) */
17899 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17900 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
17901 CAN_Sgn.UnsignedSgn &= 0x00000003;
17902 L4_MABX_B.SFunction1_o11_j = ((real_T) CAN_Sgn.UnsignedSgn);
17903
17904 /* ...... "SPN5400_SCRThermMgmtActive" (46|2, standard signal, unsigned int, little endian) */
17905 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17906 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
17907 CAN_Sgn.UnsignedSgn &= 0x00000003;
17908 L4_MABX_B.SFunction1_o12_i = ((real_T) CAN_Sgn.UnsignedSgn);
17909
17910 /* ...... "SPN3357_ActMaxAvailEngPercTrq" (48|8, standard signal, unsigned int, little endian) */
17911 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17912 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17913 L4_MABX_B.SFunction1_o13_g = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
17914
17915 /* ...... "SPN5398_EstPumpingPercentTorque" (56|8, standard signal, unsigned int, little endian) */
17916 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17917 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17918 L4_MABX_B.SFunction1_o14_e = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
17919 );
17920 }
17921 }
17922 } else {
17923 /* set RX status to 0 because no new message has arrived */
17924 L4_MABX_B.SFunction1_o15_i = 0.0;
17925 }
17926 }
17927 }
17928
17929 /* End of Constant: '<S424>/Enable_RX_EEC2_00' */
17930 /* End of Outputs for SubSystem: '<S553>/EEC2_001' */
17931
17932 /* DataTypeConversion: '<S553>/Data Type Conversion10' */
17933 L4_MABX_B.RX_delta_time_h = L4_MABX_B.SFunction1_o17_p;
17934
17935 /* DataTypeConversion: '<S553>/Data Type Conversion8' */
17936 L4_MABX_B.RX_status_pk = (L4_MABX_B.SFunction1_o15_i != 0.0);
17937
17938 /* DataTypeConversion: '<S553>/Data Type Conversion9' */
17939 L4_MABX_B.RX_time_d = L4_MABX_B.SFunction1_o16_p;
17940
17941 /* DataTypeConversion: '<S555>/Data Type Conversion10' */
17942 L4_MABX_B.RX_delta_time_hh = L4_MABX_B.SFunction1_o5_fy;
17943
17944 /* DataTypeConversion: '<S555>/Data Type Conversion8' */
17945 L4_MABX_B.RX_status_mg = (L4_MABX_B.SFunction1_o3_lh != 0.0);
17946
17947 /* DataTypeConversion: '<S555>/Data Type Conversion9' */
17948 L4_MABX_B.RX_time_m = L4_MABX_B.SFunction1_o4_im;
17949
17950 /* DataTypeConversion: '<S557>/Data Type Conversion10' */
17951 L4_MABX_B.RX_delta_time_c = L4_MABX_B.SFunction1_o6_p;
17952
17953 /* DataTypeConversion: '<S557>/Data Type Conversion8' */
17954 L4_MABX_B.RX_status_e = (L4_MABX_B.SFunction1_o4_lu != 0.0);
17955
17956 /* DataTypeConversion: '<S557>/Data Type Conversion9' */
17957 L4_MABX_B.RX_time_e = L4_MABX_B.SFunction1_o5_kr;
17958
17959 /* Switch: '<S559>/Switch' */
17960 if (L4_MABX_B.RX_status_h) {
17961 L4_MABX_B.SID_i = L4_MABX_B.SFunction1_o1_hz;
17962 L4_MABX_B.SetMode = L4_MABX_B.SFunction1_o2_a5;
17963 L4_MABX_B.OpMode = L4_MABX_B.SFunction1_o3_i;
17964 L4_MABX_B.VDOP = L4_MABX_B.SFunction1_o5_gi;
17965 L4_MABX_B.TDOP = L4_MABX_B.SFunction1_o6_d;
17966 L4_MABX_B.RX_status_la = L4_MABX_B.RX_status_h;
17967 } else {
17968 L4_MABX_B.SID_i = L4_MABX_B.SFunction1_o1_ou;
17969 L4_MABX_B.SetMode = L4_MABX_B.SFunction1_o2_e4;
17970 L4_MABX_B.OpMode = L4_MABX_B.SFunction1_o3_nc;
17971 L4_MABX_B.VDOP = L4_MABX_B.SFunction1_o5_fr;
17972 L4_MABX_B.TDOP = L4_MABX_B.SFunction1_o6_mi;
17973
17974 /* DataTypeConversion: '<S559>/Data Type Conversion3' */
17975 L4_MABX_B.RX_status_by = (L4_MABX_B.SFunction1_o7_eh != 0.0);
17976 L4_MABX_B.RX_status_la = L4_MABX_B.RX_status_by;
17977 }
17978
17979 if (L4_MABX_B.RX_status_h) {
17980 /* DataTypeConversion: '<S559>/Data Type Conversion9' */
17981 L4_MABX_B.RX_time_of = L4_MABX_B.SFunction1_o8_h0;
17982 L4_MABX_B.RX_time_a0 = L4_MABX_B.RX_time_of;
17983
17984 /* DataTypeConversion: '<S559>/Data Type Conversion10' */
17985 L4_MABX_B.RX_delta_time_ex = L4_MABX_B.SFunction1_o9_nr;
17986 L4_MABX_B.RX_delta_time_e = L4_MABX_B.RX_delta_time_ex;
17987 } else {
17988 /* DataTypeConversion: '<S559>/Data Type Conversion2' */
17989 L4_MABX_B.RX_time_fz = L4_MABX_B.SFunction1_o8_mx;
17990 L4_MABX_B.RX_time_a0 = L4_MABX_B.RX_time_fz;
17991
17992 /* DataTypeConversion: '<S559>/Data Type Conversion1' */
17993 L4_MABX_B.RX_delta_time_cq = L4_MABX_B.SFunction1_o9_ie;
17994 L4_MABX_B.RX_delta_time_e = L4_MABX_B.RX_delta_time_cq;
17995 }
17996
17997 /* DataTypeConversion: '<S562>/Data Type Conversion10' */
17998 L4_MABX_B.RX_delta_time_lp = L4_MABX_B.SFunction1_o7_lc;
17999
18000 /* DataTypeConversion: '<S562>/Data Type Conversion8' */
18001 L4_MABX_B.RX_status_f = (L4_MABX_B.SFunction1_o5_hp != 0.0);
18002
18003 /* DataTypeConversion: '<S562>/Data Type Conversion9' */
18004 L4_MABX_B.RX_time_bw = L4_MABX_B.SFunction1_o6_l4;
18005
18006 /* Switch: '<S429>/Switch' incorporates:
18007 * Constant: '<S452>/useReAX_CAN_Ch2'
18008 */
18009 if (L4_MABX_P.useReAX_CAN_Ch2_Value) {
18010 ReAX_EchoedSteerWheelPos = L4_MABX_B.SFunction1_o2_lv;
18011
18012 /* DataTypeConversion: '<S564>/Data Type Conversion8' */
18013 L4_MABX_B.RX_status_f2 = (L4_MABX_B.SFunction1_o3_oa != 0.0);
18014 L4_MABX_B.RX_status_kl = L4_MABX_B.RX_status_f2;
18015
18016 /* DataTypeConversion: '<S564>/Data Type Conversion9' */
18017 L4_MABX_B.RX_time_gi = L4_MABX_B.SFunction1_o4_km;
18018 L4_MABX_B.RX_time_i1 = L4_MABX_B.RX_time_gi;
18019
18020 /* DataTypeConversion: '<S564>/Data Type Conversion10' */
18021 L4_MABX_B.RX_delta_time_kz = L4_MABX_B.SFunction1_o5_cm;
18022 L4_MABX_B.RX_delta_time_kc = L4_MABX_B.RX_delta_time_kz;
18023 } else {
18024 ReAX_EchoedSteerWheelPos = L4_MABX_B.SFunction1_o2_gu;
18025
18026 /* DataTypeConversion: '<S565>/Data Type Conversion8' */
18027 L4_MABX_B.RX_status_of = (L4_MABX_B.SFunction1_o3_a != 0.0);
18028 L4_MABX_B.RX_status_kl = L4_MABX_B.RX_status_of;
18029
18030 /* DataTypeConversion: '<S565>/Data Type Conversion9' */
18031 L4_MABX_B.RX_time_pq = L4_MABX_B.SFunction1_o4_gz;
18032 L4_MABX_B.RX_time_i1 = L4_MABX_B.RX_time_pq;
18033
18034 /* DataTypeConversion: '<S565>/Data Type Conversion10' */
18035 L4_MABX_B.RX_delta_time_m = L4_MABX_B.SFunction1_o5_pk;
18036 L4_MABX_B.RX_delta_time_kc = L4_MABX_B.RX_delta_time_m;
18037 }
18038
18039 /* RelationalOperator: '<S597>/Operator' incorporates:
18040 * Constant: '<S432>/Constant'
18041 * Constant: '<S593>/Constant'
18042 */
18043 L4_MABX_B.Operator_brf = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18044 L4_MABX_P.Constant_Value_pi);
18045
18046 /* Outputs for Enabled SubSystem: '<S590>/CAN_TYPE1_RX_M1_C1' incorporates:
18047 * EnablePort: '<S594>/Enable'
18048 */
18049 if (L4_MABX_B.Operator_brf) {
18050 /* S-Function (rti_commonblock): '<S594>/S-Function1' */
18051 /* This comment workarounds a code generation problem */
18052
18053 /* dSPACE RTICAN RX Message Block: "PropB_XPR_1" Id:419387472 */
18054 {
18055 UInt32 *CAN_Msg;
18056 static dsfloat time_old = 0.0;
18057
18058 /* Read status and timestamp info (previous message) */
18059 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FF5850].timestamp !=
18060 time_old) {
18061 /* ... save timestamp info for the calculation of the RX status
18062 during the consecutive sample hit*/
18063 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FF5850].
18064 timestamp;
18065
18066 /* ... set the processed flag to one */
18067 L4_MABX_B.SFunction1_o3_me = 1.0;
18068 L4_MABX_B.SFunction1_o4_g5 = (real_T)
18069 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FF5850].timestamp;
18070 L4_MABX_B.SFunction1_o5_g = (real_T)
18071 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FF5850].deltatime;
18072 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FF5850].data;
18073
18074 /* Decode CAN message */
18075 {
18076 {
18077 rtican_Signal_t CAN_Sgn;
18078
18079 /* ...... "EPBPCMInhibitStatusFeedback" (0|2, standard signal, unsigned int, little endian) */
18080 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18081 CAN_Sgn.UnsignedSgn &= 0x00000003;
18082 L4_MABX_B.SFunction1_o1_do = ((real_T) CAN_Sgn.UnsignedSgn);
18083
18084 /* ...... "EPBPCMManualStatusFeedback" (2|2, standard signal, unsigned int, little endian) */
18085 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18086 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18087 CAN_Sgn.UnsignedSgn &= 0x00000003;
18088 L4_MABX_B.SFunction1_o2_hf = ((real_T) CAN_Sgn.UnsignedSgn);
18089 }
18090 }
18091 } else {
18092 /* set RX status to 0 because no new message has arrived */
18093 L4_MABX_B.SFunction1_o3_me = 0.0;
18094 }
18095 }
18096 }
18097
18098 /* End of Outputs for SubSystem: '<S590>/CAN_TYPE1_RX_M1_C1' */
18099
18100 /* RelationalOperator: '<S598>/Operator' incorporates:
18101 * Constant: '<S432>/Constant'
18102 * Constant: '<S593>/Constant1'
18103 */
18104 L4_MABX_B.Operator_fts = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18105 L4_MABX_P.Constant1_Value_he);
18106
18107 /* Outputs for Enabled SubSystem: '<S591>/CAN_TYPE1_RX_M1_C2' incorporates:
18108 * EnablePort: '<S595>/Enable'
18109 */
18110 if (L4_MABX_B.Operator_fts) {
18111 /* S-Function (rti_commonblock): '<S595>/S-Function1' */
18112 /* This comment workarounds a code generation problem */
18113
18114 /* dSPACE RTICAN RX Message Block: "PropB_XPR_1" Id:419387472 */
18115 {
18116 UInt32 *CAN_Msg;
18117 static dsfloat time_old = 0.0;
18118
18119 /* Read status and timestamp info (previous message) */
18120 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FF5850].timestamp !=
18121 time_old) {
18122 /* ... save timestamp info for the calculation of the RX status
18123 during the consecutive sample hit*/
18124 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FF5850].
18125 timestamp;
18126
18127 /* ... set the processed flag to one */
18128 L4_MABX_B.SFunction1_o3_l3 = 1.0;
18129 L4_MABX_B.SFunction1_o4_hx = (real_T)
18130 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FF5850].timestamp;
18131 L4_MABX_B.SFunction1_o5_hc = (real_T)
18132 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FF5850].deltatime;
18133 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FF5850].data;
18134
18135 /* Decode CAN message */
18136 {
18137 {
18138 rtican_Signal_t CAN_Sgn;
18139
18140 /* ...... "EPBPCMInhibitStatusFeedback" (0|2, standard signal, unsigned int, little endian) */
18141 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18142 CAN_Sgn.UnsignedSgn &= 0x00000003;
18143 L4_MABX_B.SFunction1_o1_ih = ((real_T) CAN_Sgn.UnsignedSgn);
18144
18145 /* ...... "EPBPCMManualStatusFeedback" (2|2, standard signal, unsigned int, little endian) */
18146 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18147 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18148 CAN_Sgn.UnsignedSgn &= 0x00000003;
18149 L4_MABX_B.SFunction1_o2_o0 = ((real_T) CAN_Sgn.UnsignedSgn);
18150 }
18151 }
18152 } else {
18153 /* set RX status to 0 because no new message has arrived */
18154 L4_MABX_B.SFunction1_o3_l3 = 0.0;
18155 }
18156 }
18157 }
18158
18159 /* End of Outputs for SubSystem: '<S591>/CAN_TYPE1_RX_M1_C2' */
18160
18161 /* RelationalOperator: '<S599>/Operator' incorporates:
18162 * Constant: '<S432>/Constant'
18163 * Constant: '<S593>/Constant2'
18164 */
18165 L4_MABX_B.Operator_b4 = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18166 L4_MABX_P.Constant2_Value_hz);
18167
18168 /* Outputs for Enabled SubSystem: '<S592>/CAN_TYPE1_RX_M2_C1' incorporates:
18169 * EnablePort: '<S596>/Enable'
18170 */
18171 if (L4_MABX_B.Operator_b4) {
18172 /* S-Function (rti_commonblock): '<S596>/S-Function1' */
18173 /* This comment workarounds a code generation problem */
18174
18175 /* dSPACE RTICAN RX Message Block: "PropB_XPR_1" Id:419387472 */
18176 {
18177 UInt32 *CAN_Msg;
18178 static dsfloat time_old = 0.0;
18179
18180 /* Read status and timestamp info (previous message) */
18181 if (can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF5850].timestamp !=
18182 time_old) {
18183 /* ... save timestamp info for the calculation of the RX status
18184 during the consecutive sample hit*/
18185 time_old = can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF5850].
18186 timestamp;
18187
18188 /* ... set the processed flag to one */
18189 L4_MABX_B.SFunction1_o3_ff = 1.0;
18190 L4_MABX_B.SFunction1_o4_ah = (real_T)
18191 can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF5850].timestamp;
18192 L4_MABX_B.SFunction1_o5_bs = (real_T)
18193 can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF5850].deltatime;
18194 CAN_Msg = can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF5850].data;
18195
18196 /* Decode CAN message */
18197 {
18198 {
18199 rtican_Signal_t CAN_Sgn;
18200
18201 /* ...... "EPBPCMInhibitStatusFeedback" (0|2, standard signal, unsigned int, little endian) */
18202 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18203 CAN_Sgn.UnsignedSgn &= 0x00000003;
18204 L4_MABX_B.SFunction1_o1_ac = ((real_T) CAN_Sgn.UnsignedSgn);
18205
18206 /* ...... "EPBPCMManualStatusFeedback" (2|2, standard signal, unsigned int, little endian) */
18207 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18208 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18209 CAN_Sgn.UnsignedSgn &= 0x00000003;
18210 L4_MABX_B.SFunction1_o2_k = ((real_T) CAN_Sgn.UnsignedSgn);
18211 }
18212 }
18213 } else {
18214 /* set RX status to 0 because no new message has arrived */
18215 L4_MABX_B.SFunction1_o3_ff = 0.0;
18216 }
18217 }
18218 }
18219
18220 /* End of Outputs for SubSystem: '<S592>/CAN_TYPE1_RX_M2_C1' */
18221
18222 /* DataTypeConversion: '<S592>/Data Type Conversion' */
18223 PositionFinalLimited = L4_MABX_B.SFunction1_o1_ac;
18224 if (PositionFinalLimited < 256.0) {
18225 if (PositionFinalLimited >= 0.0) {
18226 starting_index = (uint8_T)PositionFinalLimited;
18227 } else {
18228 starting_index = 0U;
18229 }
18230 } else {
18231 starting_index = MAX_uint8_T;
18232 }
18233
18234 L4_MABX_B.DataTypeConversion_er = starting_index;
18235
18236 /* End of DataTypeConversion: '<S592>/Data Type Conversion' */
18237
18238 /* DataTypeConversion: '<S592>/Data Type Conversion2' */
18239 L4_MABX_B.EPBPCMInhibitStatusFeedback = (ENUM_XPR_FEEDBACK_T)
18240 L4_MABX_B.DataTypeConversion_er;
18241
18242 /* MultiPortSwitch: '<S432>/Multiport_Switch' incorporates:
18243 * Constant: '<S432>/Constant'
18244 */
18245 switch (CANR_PROPB_XPR_1_50_CHANNEL_APV) {
18246 case ENUM_CAN_RX_T_RX_CAN_1:
18247 /* DataTypeConversion: '<S590>/Data Type Conversion' */
18248 PositionFinalLimited = L4_MABX_B.SFunction1_o1_do;
18249 if (PositionFinalLimited < 256.0) {
18250 if (PositionFinalLimited >= 0.0) {
18251 starting_index = (uint8_T)PositionFinalLimited;
18252 } else {
18253 starting_index = 0U;
18254 }
18255 } else {
18256 starting_index = MAX_uint8_T;
18257 }
18258
18259 L4_MABX_B.DataTypeConversion_nb = starting_index;
18260
18261 /* End of DataTypeConversion: '<S590>/Data Type Conversion' */
18262
18263 /* DataTypeConversion: '<S590>/Data Type Conversion2' */
18264 L4_MABX_B.EPBPCMInhibitStatusFeedback_f = (ENUM_XPR_FEEDBACK_T)
18265 L4_MABX_B.DataTypeConversion_nb;
18266 L4_MABX_B.EPBPCMInhibitStatusFeedback_c =
18267 L4_MABX_B.EPBPCMInhibitStatusFeedback_f;
18268 break;
18269
18270 case ENUM_CAN_RX_T_RX_CAN_2:
18271 /* DataTypeConversion: '<S591>/Data Type Conversion' */
18272 PositionFinalLimited = L4_MABX_B.SFunction1_o1_ih;
18273 if (PositionFinalLimited < 256.0) {
18274 if (PositionFinalLimited >= 0.0) {
18275 starting_index = (uint8_T)PositionFinalLimited;
18276 } else {
18277 starting_index = 0U;
18278 }
18279 } else {
18280 starting_index = MAX_uint8_T;
18281 }
18282
18283 L4_MABX_B.DataTypeConversion_e2 = starting_index;
18284
18285 /* End of DataTypeConversion: '<S591>/Data Type Conversion' */
18286
18287 /* DataTypeConversion: '<S591>/Data Type Conversion2' */
18288 L4_MABX_B.EPBPCMInhibitStatusFeedback_e = (ENUM_XPR_FEEDBACK_T)
18289 L4_MABX_B.DataTypeConversion_e2;
18290 L4_MABX_B.EPBPCMInhibitStatusFeedback_c =
18291 L4_MABX_B.EPBPCMInhibitStatusFeedback_e;
18292 break;
18293
18294 case ENUM_CAN_RX_T_RX_CAN_3:
18295 L4_MABX_B.EPBPCMInhibitStatusFeedback_c =
18296 L4_MABX_B.EPBPCMInhibitStatusFeedback;
18297 break;
18298
18299 case ENUM_CAN_RX_T_RX_CAN_4:
18300 L4_MABX_B.EPBPCMInhibitStatusFeedback_c =
18301 L4_MABX_B.EPBPCMInhibitStatusFeedback;
18302 break;
18303
18304 case ENUM_CAN_RX_T_RX_CAN_5:
18305 L4_MABX_B.EPBPCMInhibitStatusFeedback_c =
18306 L4_MABX_B.EPBPCMInhibitStatusFeedback;
18307 break;
18308
18309 case ENUM_CAN_RX_T_RX_CAN_6:
18310 L4_MABX_B.EPBPCMInhibitStatusFeedback_c =
18311 L4_MABX_B.EPBPCMInhibitStatusFeedback;
18312 break;
18313
18314 default:
18315 L4_MABX_B.EPBPCMInhibitStatusFeedback_c =
18316 L4_MABX_B.EPBPCMInhibitStatusFeedback;
18317 break;
18318 }
18319
18320 /* DataTypeConversion: '<S592>/Data Type Conversion1' */
18321 PositionFinalLimited = L4_MABX_B.SFunction1_o2_k;
18322 if (PositionFinalLimited < 256.0) {
18323 if (PositionFinalLimited >= 0.0) {
18324 starting_index = (uint8_T)PositionFinalLimited;
18325 } else {
18326 starting_index = 0U;
18327 }
18328 } else {
18329 starting_index = MAX_uint8_T;
18330 }
18331
18332 L4_MABX_B.DataTypeConversion1_c1 = starting_index;
18333
18334 /* End of DataTypeConversion: '<S592>/Data Type Conversion1' */
18335
18336 /* DataTypeConversion: '<S592>/Data Type Conversion3' */
18337 L4_MABX_B.EPBPCMManualStatusFeedback = (ENUM_XPR_FEEDBACK_T)
18338 L4_MABX_B.DataTypeConversion1_c1;
18339
18340 /* MultiPortSwitch: '<S432>/Multiport_Switch' incorporates:
18341 * Constant: '<S432>/Constant'
18342 */
18343 switch (CANR_PROPB_XPR_1_50_CHANNEL_APV) {
18344 case ENUM_CAN_RX_T_RX_CAN_1:
18345 /* DataTypeConversion: '<S590>/Data Type Conversion1' */
18346 PositionFinalLimited = L4_MABX_B.SFunction1_o2_hf;
18347 if (PositionFinalLimited < 256.0) {
18348 if (PositionFinalLimited >= 0.0) {
18349 starting_index = (uint8_T)PositionFinalLimited;
18350 } else {
18351 starting_index = 0U;
18352 }
18353 } else {
18354 starting_index = MAX_uint8_T;
18355 }
18356
18357 L4_MABX_B.DataTypeConversion1_px = starting_index;
18358
18359 /* End of DataTypeConversion: '<S590>/Data Type Conversion1' */
18360
18361 /* DataTypeConversion: '<S590>/Data Type Conversion3' */
18362 L4_MABX_B.EPBPCMManualStatusFeedback_o = (ENUM_XPR_FEEDBACK_T)
18363 L4_MABX_B.DataTypeConversion1_px;
18364 L4_MABX_B.EPBPCMManualStatusFeedback_c =
18365 L4_MABX_B.EPBPCMManualStatusFeedback_o;
18366 break;
18367
18368 case ENUM_CAN_RX_T_RX_CAN_2:
18369 /* DataTypeConversion: '<S591>/Data Type Conversion1' */
18370 PositionFinalLimited = L4_MABX_B.SFunction1_o2_o0;
18371 if (PositionFinalLimited < 256.0) {
18372 if (PositionFinalLimited >= 0.0) {
18373 starting_index = (uint8_T)PositionFinalLimited;
18374 } else {
18375 starting_index = 0U;
18376 }
18377 } else {
18378 starting_index = MAX_uint8_T;
18379 }
18380
18381 L4_MABX_B.DataTypeConversion1_fv = starting_index;
18382
18383 /* End of DataTypeConversion: '<S591>/Data Type Conversion1' */
18384
18385 /* DataTypeConversion: '<S591>/Data Type Conversion3' */
18386 L4_MABX_B.EPBPCMManualStatusFeedback_cb = (ENUM_XPR_FEEDBACK_T)
18387 L4_MABX_B.DataTypeConversion1_fv;
18388 L4_MABX_B.EPBPCMManualStatusFeedback_c =
18389 L4_MABX_B.EPBPCMManualStatusFeedback_cb;
18390 break;
18391
18392 case ENUM_CAN_RX_T_RX_CAN_3:
18393 L4_MABX_B.EPBPCMManualStatusFeedback_c =
18394 L4_MABX_B.EPBPCMManualStatusFeedback;
18395 break;
18396
18397 case ENUM_CAN_RX_T_RX_CAN_4:
18398 L4_MABX_B.EPBPCMManualStatusFeedback_c =
18399 L4_MABX_B.EPBPCMManualStatusFeedback;
18400 break;
18401
18402 case ENUM_CAN_RX_T_RX_CAN_5:
18403 L4_MABX_B.EPBPCMManualStatusFeedback_c =
18404 L4_MABX_B.EPBPCMManualStatusFeedback;
18405 break;
18406
18407 case ENUM_CAN_RX_T_RX_CAN_6:
18408 L4_MABX_B.EPBPCMManualStatusFeedback_c =
18409 L4_MABX_B.EPBPCMManualStatusFeedback;
18410 break;
18411
18412 default:
18413 L4_MABX_B.EPBPCMManualStatusFeedback_c =
18414 L4_MABX_B.EPBPCMManualStatusFeedback;
18415 break;
18416 }
18417
18418 /* DataTypeConversion: '<S592>/Data Type Conversion8' */
18419 L4_MABX_B.RX_status_n = (L4_MABX_B.SFunction1_o3_ff != 0.0);
18420
18421 /* MultiPortSwitch: '<S432>/Multiport_Switch' incorporates:
18422 * Constant: '<S432>/Constant'
18423 */
18424 switch (CANR_PROPB_XPR_1_50_CHANNEL_APV) {
18425 case ENUM_CAN_RX_T_RX_CAN_1:
18426 /* DataTypeConversion: '<S590>/Data Type Conversion8' */
18427 L4_MABX_B.RX_status_gx = (L4_MABX_B.SFunction1_o3_me != 0.0);
18428 L4_MABX_B.RX_status_gj = L4_MABX_B.RX_status_gx;
18429 break;
18430
18431 case ENUM_CAN_RX_T_RX_CAN_2:
18432 /* DataTypeConversion: '<S591>/Data Type Conversion8' */
18433 L4_MABX_B.RX_status_mb = (L4_MABX_B.SFunction1_o3_l3 != 0.0);
18434 L4_MABX_B.RX_status_gj = L4_MABX_B.RX_status_mb;
18435 break;
18436
18437 case ENUM_CAN_RX_T_RX_CAN_3:
18438 L4_MABX_B.RX_status_gj = L4_MABX_B.RX_status_n;
18439 break;
18440
18441 case ENUM_CAN_RX_T_RX_CAN_4:
18442 L4_MABX_B.RX_status_gj = L4_MABX_B.RX_status_n;
18443 break;
18444
18445 case ENUM_CAN_RX_T_RX_CAN_5:
18446 L4_MABX_B.RX_status_gj = L4_MABX_B.RX_status_n;
18447 break;
18448
18449 case ENUM_CAN_RX_T_RX_CAN_6:
18450 L4_MABX_B.RX_status_gj = L4_MABX_B.RX_status_n;
18451 break;
18452
18453 default:
18454 L4_MABX_B.RX_status_gj = L4_MABX_B.RX_status_n;
18455 break;
18456 }
18457
18458 /* DataTypeConversion: '<S592>/Data Type Conversion9' */
18459 L4_MABX_B.RX_time_au = L4_MABX_B.SFunction1_o4_ah;
18460
18461 /* MultiPortSwitch: '<S432>/Multiport_Switch' incorporates:
18462 * Constant: '<S432>/Constant'
18463 */
18464 switch (CANR_PROPB_XPR_1_50_CHANNEL_APV) {
18465 case ENUM_CAN_RX_T_RX_CAN_1:
18466 /* DataTypeConversion: '<S590>/Data Type Conversion9' */
18467 L4_MABX_B.RX_time_no = L4_MABX_B.SFunction1_o4_g5;
18468 L4_MABX_B.RX_time_iy = L4_MABX_B.RX_time_no;
18469 break;
18470
18471 case ENUM_CAN_RX_T_RX_CAN_2:
18472 /* DataTypeConversion: '<S591>/Data Type Conversion9' */
18473 L4_MABX_B.RX_time_c1 = L4_MABX_B.SFunction1_o4_hx;
18474 L4_MABX_B.RX_time_iy = L4_MABX_B.RX_time_c1;
18475 break;
18476
18477 case ENUM_CAN_RX_T_RX_CAN_3:
18478 L4_MABX_B.RX_time_iy = L4_MABX_B.RX_time_au;
18479 break;
18480
18481 case ENUM_CAN_RX_T_RX_CAN_4:
18482 L4_MABX_B.RX_time_iy = L4_MABX_B.RX_time_au;
18483 break;
18484
18485 case ENUM_CAN_RX_T_RX_CAN_5:
18486 L4_MABX_B.RX_time_iy = L4_MABX_B.RX_time_au;
18487 break;
18488
18489 case ENUM_CAN_RX_T_RX_CAN_6:
18490 L4_MABX_B.RX_time_iy = L4_MABX_B.RX_time_au;
18491 break;
18492
18493 default:
18494 L4_MABX_B.RX_time_iy = L4_MABX_B.RX_time_au;
18495 break;
18496 }
18497
18498 /* DataTypeConversion: '<S592>/Data Type Conversion10' */
18499 L4_MABX_B.RX_delta_time_pg = L4_MABX_B.SFunction1_o5_bs;
18500
18501 /* MultiPortSwitch: '<S432>/Multiport_Switch' incorporates:
18502 * Constant: '<S432>/Constant'
18503 */
18504 switch (CANR_PROPB_XPR_1_50_CHANNEL_APV) {
18505 case ENUM_CAN_RX_T_RX_CAN_1:
18506 /* DataTypeConversion: '<S590>/Data Type Conversion10' */
18507 L4_MABX_B.RX_delta_time_hc = L4_MABX_B.SFunction1_o5_g;
18508 L4_MABX_B.RX_delta_time_e3 = L4_MABX_B.RX_delta_time_hc;
18509 break;
18510
18511 case ENUM_CAN_RX_T_RX_CAN_2:
18512 /* DataTypeConversion: '<S591>/Data Type Conversion10' */
18513 L4_MABX_B.RX_delta_time_ho = L4_MABX_B.SFunction1_o5_hc;
18514 L4_MABX_B.RX_delta_time_e3 = L4_MABX_B.RX_delta_time_ho;
18515 break;
18516
18517 case ENUM_CAN_RX_T_RX_CAN_3:
18518 L4_MABX_B.RX_delta_time_e3 = L4_MABX_B.RX_delta_time_pg;
18519 break;
18520
18521 case ENUM_CAN_RX_T_RX_CAN_4:
18522 L4_MABX_B.RX_delta_time_e3 = L4_MABX_B.RX_delta_time_pg;
18523 break;
18524
18525 case ENUM_CAN_RX_T_RX_CAN_5:
18526 L4_MABX_B.RX_delta_time_e3 = L4_MABX_B.RX_delta_time_pg;
18527 break;
18528
18529 case ENUM_CAN_RX_T_RX_CAN_6:
18530 L4_MABX_B.RX_delta_time_e3 = L4_MABX_B.RX_delta_time_pg;
18531 break;
18532
18533 default:
18534 L4_MABX_B.RX_delta_time_e3 = L4_MABX_B.RX_delta_time_pg;
18535 break;
18536 }
18537
18538 /* RelationalOperator: '<S600>/Operator' incorporates:
18539 * Constant: '<S432>/Constant'
18540 * Constant: '<S593>/Constant3'
18541 */
18542 L4_MABX_B.Operator_g3 = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18543 L4_MABX_P.Constant3_Value_b2);
18544
18545 /* RelationalOperator: '<S601>/Operator' incorporates:
18546 * Constant: '<S432>/Constant'
18547 * Constant: '<S593>/Constant4'
18548 */
18549 L4_MABX_B.Operator_er = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18550 L4_MABX_P.Constant4_Value_ao);
18551
18552 /* RelationalOperator: '<S602>/Operator' incorporates:
18553 * Constant: '<S432>/Constant'
18554 * Constant: '<S593>/Constant5'
18555 */
18556 L4_MABX_B.Operator_ba = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18557 L4_MABX_P.Constant5_Value_g);
18558
18559 /* Outputs for Enabled SubSystem: '<S603>/PX2_LaneEdgeLeft' incorporates:
18560 * EnablePort: '<S604>/Enable'
18561 */
18562 /* Constant: '<S433>/Constant' */
18563 if (L4_MABX_P.Constant_Value_mk) {
18564 /* S-Function (rti_commonblock): '<S604>/S-Function1' */
18565 /* This comment workarounds a code generation problem */
18566
18567 /* dSPACE RTICAN RX Message Block: "PX2_LaneEdgeLeft" Id:770 */
18568 {
18569 UInt32 *CAN_Msg;
18570 static dsfloat time_old = 0.0;
18571
18572 /* Read status and timestamp info (previous message) */
18573 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x302].timestamp !=
18574 time_old) {
18575 /* ... save timestamp info for the calculation of the RX status
18576 during the consecutive sample hit*/
18577 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x302].timestamp;
18578
18579 /* ... set the processed flag to one */
18580 L4_MABX_B.SFunction1_o4_n5 = 1.0;
18581 L4_MABX_B.SFunction1_o5_h = (real_T)
18582 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x302].timestamp;
18583 L4_MABX_B.SFunction1_o6_av = (real_T)
18584 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x302].deltatime;
18585 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x302].data;
18586
18587 /* Decode CAN message */
18588 {
18589 {
18590 rtican_Signal_t CAN_Sgn;
18591
18592 /* ...... "PX2_LaneEdgeLeftAngle" (0|16, standard signal, signed int, little endian) */
18593 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18594 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
18595 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18596 if (CAN_Sgn.SignedSgn >> 15) {
18597 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18598 }
18599
18600 L4_MABX_B.SFunction1_o1_fv = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
18601
18602 /* ...... "PX2_LaneEdgeLeftNumPoints" (16|8, standard signal, unsigned int, little endian) */
18603 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
18604 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18605 L4_MABX_B.SFunction1_o2_mc = ((real_T) CAN_Sgn.UnsignedSgn);
18606
18607 /* ...... "PX2_LaneEdgeLeftPosition" (24|16, standard signal, signed int, little endian) */
18608 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
18609 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
18610 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18611 if (CAN_Sgn.SignedSgn >> 15) {
18612 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18613 }
18614
18615 L4_MABX_B.SFunction1_o3_fu = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn) );
18616 }
18617 }
18618 } else {
18619 /* set RX status to 0 because no new message has arrived */
18620 L4_MABX_B.SFunction1_o4_n5 = 0.0;
18621 }
18622 }
18623 }
18624
18625 /* End of Outputs for SubSystem: '<S603>/PX2_LaneEdgeLeft' */
18626
18627 /* DataTypeConversion: '<S603>/Data Type Conversion1' */
18628 L4_MABX_B.RX_delta_time_i = L4_MABX_B.SFunction1_o6_av;
18629
18630 /* DataTypeConversion: '<S603>/Data Type Conversion10' */
18631 L4_MABX_B.RX_delta_time_nc = L4_MABX_B.SFunction1_o7_lv;
18632
18633 /* DataTypeConversion: '<S603>/Data Type Conversion2' */
18634 L4_MABX_B.RX_status_bf = (L4_MABX_B.SFunction1_o4_n5 != 0.0);
18635
18636 /* DataTypeConversion: '<S603>/Data Type Conversion3' */
18637 L4_MABX_B.RX_time_is = L4_MABX_B.SFunction1_o5_h;
18638
18639 /* Outputs for Enabled SubSystem: '<S603>/PX2_LaneEdgeRight' incorporates:
18640 * EnablePort: '<S605>/Enable'
18641 */
18642 /* Constant: '<S433>/Constant' */
18643 if (L4_MABX_P.Constant_Value_mk) {
18644 /* S-Function (rti_commonblock): '<S605>/S-Function1' */
18645 /* This comment workarounds a code generation problem */
18646
18647 /* dSPACE RTICAN RX Message Block: "PX2_LaneEdgeRight" Id:771 */
18648 {
18649 UInt32 *CAN_Msg;
18650 static dsfloat time_old = 0.0;
18651
18652 /* Read status and timestamp info (previous message) */
18653 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x303].timestamp !=
18654 time_old) {
18655 /* ... save timestamp info for the calculation of the RX status
18656 during the consecutive sample hit*/
18657 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x303].timestamp;
18658
18659 /* ... set the processed flag to one */
18660 L4_MABX_B.SFunction1_o4_j = 1.0;
18661 L4_MABX_B.SFunction1_o5_al = (real_T)
18662 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x303].timestamp;
18663 L4_MABX_B.SFunction1_o6_c = (real_T)
18664 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x303].deltatime;
18665 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x303].data;
18666
18667 /* Decode CAN message */
18668 {
18669 {
18670 rtican_Signal_t CAN_Sgn;
18671
18672 /* ...... "PX2_LaneEdgeRightAngle" (0|16, standard signal, signed int, little endian) */
18673 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18674 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
18675 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18676 if (CAN_Sgn.SignedSgn >> 15) {
18677 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18678 }
18679
18680 L4_MABX_B.SFunction1_o1_mz = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
18681
18682 /* ...... "PX2_LaneEdgeRightNumPoints" (16|8, standard signal, unsigned int, little endian) */
18683 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
18684 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18685 L4_MABX_B.SFunction1_o2_bh = ((real_T) CAN_Sgn.UnsignedSgn);
18686
18687 /* ...... "PX2_LaneEdgeRightPosition" (24|16, standard signal, signed int, little endian) */
18688 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
18689 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
18690 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18691 if (CAN_Sgn.SignedSgn >> 15) {
18692 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18693 }
18694
18695 L4_MABX_B.SFunction1_o3_ey = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn) );
18696 }
18697 }
18698 } else {
18699 /* set RX status to 0 because no new message has arrived */
18700 L4_MABX_B.SFunction1_o4_j = 0.0;
18701 }
18702 }
18703 }
18704
18705 /* End of Outputs for SubSystem: '<S603>/PX2_LaneEdgeRight' */
18706
18707 /* DataTypeConversion: '<S603>/Data Type Conversion4' */
18708 L4_MABX_B.RX_delta_time_kn = L4_MABX_B.SFunction1_o6_c;
18709
18710 /* DataTypeConversion: '<S603>/Data Type Conversion5' */
18711 L4_MABX_B.RX_status_e2 = (L4_MABX_B.SFunction1_o4_j != 0.0);
18712
18713 /* DataTypeConversion: '<S603>/Data Type Conversion6' */
18714 L4_MABX_B.RX_time_e3 = L4_MABX_B.SFunction1_o5_al;
18715
18716 /* DataTypeConversion: '<S603>/Data Type Conversion8' */
18717 L4_MABX_B.RX_status_k3 = (L4_MABX_B.SFunction1_o5_j != 0.0);
18718
18719 /* DataTypeConversion: '<S603>/Data Type Conversion9' */
18720 L4_MABX_B.RX_time_in = L4_MABX_B.SFunction1_o6_eu;
18721
18722 /* Switch: '<S607>/Switch' */
18723 if (L4_MABX_B.If_Then_Else.Switch) {
18724 /* DataTypeConversion: '<S607>/Data Type Conversion8' */
18725 L4_MABX_B.RX_status_cd = (L4_MABX_B.SFunction1_o3_e != 0.0);
18726 L4_MABX_B.RX_status_hp = L4_MABX_B.RX_status_cd;
18727
18728 /* DataTypeConversion: '<S607>/Data Type Conversion9' */
18729 L4_MABX_B.RX_time_fk = L4_MABX_B.SFunction1_o4_mw;
18730 L4_MABX_B.RX_time_k = L4_MABX_B.RX_time_fk;
18731
18732 /* DataTypeConversion: '<S607>/Data Type Conversion10' */
18733 L4_MABX_B.RX_delta_time_pf = L4_MABX_B.SFunction1_o5_k;
18734 L4_MABX_B.RX_delta_time_l3 = L4_MABX_B.RX_delta_time_pf;
18735 } else {
18736 /* DataTypeConversion: '<S607>/Data Type Conversion3' */
18737 L4_MABX_B.RX_status_pz = (L4_MABX_B.SFunction1_o3_gm != 0.0);
18738 L4_MABX_B.RX_status_hp = L4_MABX_B.RX_status_pz;
18739
18740 /* DataTypeConversion: '<S607>/Data Type Conversion2' */
18741 L4_MABX_B.RX_time_i5 = L4_MABX_B.SFunction1_o4_hc;
18742 L4_MABX_B.RX_time_k = L4_MABX_B.RX_time_i5;
18743
18744 /* DataTypeConversion: '<S607>/Data Type Conversion1' */
18745 L4_MABX_B.RX_delta_time_fg = L4_MABX_B.SFunction1_o5_ib;
18746 L4_MABX_B.RX_delta_time_l3 = L4_MABX_B.RX_delta_time_fg;
18747 }
18748
18749 /* DataTypeConversion: '<S610>/Data Type Conversion1' */
18750 L4_MABX_B.XPR1ControlStatus = L4_MABX_B.SFunction1_o6_lq;
18751
18752 /* DataTypeConversion: '<S610>/Data Type Conversion10' */
18753 L4_MABX_B.RX_delta_time_lk = L4_MABX_B.SFunction1_o13_l;
18754
18755 /* DataTypeConversion: '<S610>/Data Type Conversion2' */
18756 L4_MABX_B.XPR2ControlStatus = L4_MABX_B.SFunction1_o7_p;
18757
18758 /* DataTypeConversion: '<S610>/Data Type Conversion3' */
18759 L4_MABX_B.XPR3ControlStatus = L4_MABX_B.SFunction1_o8_f4;
18760
18761 /* DataTypeConversion: '<S610>/Data Type Conversion8' */
18762 L4_MABX_B.RX_status_a4 = (L4_MABX_B.SFunction1_o11_l != 0.0);
18763
18764 /* DataTypeConversion: '<S610>/Data Type Conversion9' */
18765 L4_MABX_B.RX_time_e2 = L4_MABX_B.SFunction1_o12_h;
18766
18767 /* DataTypeConversion: '<S612>/Data Type Conversion10' */
18768 L4_MABX_B.RX_delta_time_hr = L4_MABX_B.SFunction1_o10_l;
18769
18770 /* DataTypeConversion: '<S612>/Data Type Conversion8' */
18771 L4_MABX_B.RX_status_fm = (L4_MABX_B.SFunction1_o8_j != 0.0);
18772
18773 /* DataTypeConversion: '<S612>/Data Type Conversion9' */
18774 L4_MABX_B.RX_time_ly = L4_MABX_B.SFunction1_o9_i;
18775
18776 /* Outputs for Enabled SubSystem: '<S614>/PX2_MapLaneEgoLeft' incorporates:
18777 * EnablePort: '<S615>/Enable'
18778 */
18779 /* Constant: '<S437>/CAN_RX-Enable_PX2_MapLaneEgoLeft' */
18780 if (L4_MABX_P.CAN_RXEnable_PX2_MapLaneEgoLeft) {
18781 /* S-Function (rti_commonblock): '<S615>/S-Function1' */
18782 /* This comment workarounds a code generation problem */
18783
18784 /* dSPACE RTICAN RX Message Block: "PX2_MapLaneEgoLeft" Id:1542 */
18785 {
18786 UInt32 *CAN_Msg;
18787 static dsfloat time_old = 0.0;
18788
18789 /* Read status and timestamp info (previous message) */
18790 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x606].timestamp !=
18791 time_old) {
18792 /* ... save timestamp info for the calculation of the RX status
18793 during the consecutive sample hit*/
18794 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x606].timestamp;
18795
18796 /* ... set the processed flag to one */
18797 L4_MABX_B.SFunction1_o7_d = 1.0;
18798 L4_MABX_B.SFunction1_o8_f = (real_T)
18799 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x606].timestamp;
18800 L4_MABX_B.SFunction1_o9_k = (real_T)
18801 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x606].deltatime;
18802 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x606].data;
18803
18804 /* Decode CAN message */
18805 {
18806 {
18807 rtican_Signal_t CAN_Sgn;
18808
18809 /* ...... "PX2_MapLaneNearPos" (0|16, standard signal, signed int, little endian) */
18810 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18811 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
18812 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18813 if (CAN_Sgn.SignedSgn >> 15) {
18814 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18815 }
18816
18817 L4_MABX_B.SFunction1_o1_p2 = 0.00390625 * ( ((real_T)
18818 CAN_Sgn.SignedSgn) );
18819
18820 /* ...... "PX2_MapLaneMidPos" (16|16, standard signal, signed int, little endian) */
18821 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
18822 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
18823 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18824 if (CAN_Sgn.SignedSgn >> 15) {
18825 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18826 }
18827
18828 L4_MABX_B.SFunction1_o2_jj = 0.00390625 * ( ((real_T)
18829 CAN_Sgn.SignedSgn) );
18830
18831 /* ...... "PX2_MapLaneFarPos" (32|16, standard signal, signed int, little endian) */
18832 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
18833 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
18834 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18835 if (CAN_Sgn.SignedSgn >> 15) {
18836 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18837 }
18838
18839 L4_MABX_B.SFunction1_o3_mi = 0.00390625 * ( ((real_T)
18840 CAN_Sgn.SignedSgn) );
18841
18842 /* ...... "PX2_EgoLaneNearPosValid" (48|2, standard signal, unsigned int, little endian) */
18843 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
18844 CAN_Sgn.UnsignedSgn &= 0x00000003;
18845 L4_MABX_B.SFunction1_o4_br = ((real_T) CAN_Sgn.UnsignedSgn);
18846
18847 /* ...... "PX2_EgoLaneMidPosValid" (50|2, standard signal, unsigned int, little endian) */
18848 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
18849 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18850 CAN_Sgn.UnsignedSgn &= 0x00000003;
18851 L4_MABX_B.SFunction1_o5_a = ((real_T) CAN_Sgn.UnsignedSgn);
18852
18853 /* ...... "PX2_EgoLaneFarPosValid" (52|2, standard signal, unsigned int, little endian) */
18854 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
18855 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
18856 CAN_Sgn.UnsignedSgn &= 0x00000003;
18857 L4_MABX_B.SFunction1_o6_a = ((real_T) CAN_Sgn.UnsignedSgn);
18858 }
18859 }
18860 } else {
18861 /* set RX status to 0 because no new message has arrived */
18862 L4_MABX_B.SFunction1_o7_d = 0.0;
18863 }
18864 }
18865 }
18866
18867 /* End of Constant: '<S437>/CAN_RX-Enable_PX2_MapLaneEgoLeft' */
18868 /* End of Outputs for SubSystem: '<S614>/PX2_MapLaneEgoLeft' */
18869
18870 /* DataTypeConversion: '<S614>/Data Type Conversion10' */
18871 L4_MABX_B.RX_delta_time_ag = L4_MABX_B.SFunction1_o9_k;
18872
18873 /* DataTypeConversion: '<S614>/Data Type Conversion8' */
18874 L4_MABX_B.RX_status_cm = (L4_MABX_B.SFunction1_o7_d != 0.0);
18875
18876 /* DataTypeConversion: '<S614>/Data Type Conversion9' */
18877 L4_MABX_B.RX_time_n = L4_MABX_B.SFunction1_o8_f;
18878
18879 /* Outputs for Enabled SubSystem: '<S616>/PX2_MapLaneEgoRight' incorporates:
18880 * EnablePort: '<S617>/Enable'
18881 */
18882 /* Constant: '<S438>/CAN_RX-Enable_PX2_MapLaneEgoLeft' */
18883 if (L4_MABX_P.CAN_RXEnable_PX2_MapLaneEgoLe_p) {
18884 /* S-Function (rti_commonblock): '<S617>/S-Function1' */
18885 /* This comment workarounds a code generation problem */
18886
18887 /* dSPACE RTICAN RX Message Block: "PX2_MapLaneEgoRight" Id:1541 */
18888 {
18889 UInt32 *CAN_Msg;
18890 static dsfloat time_old = 0.0;
18891
18892 /* Read status and timestamp info (previous message) */
18893 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x605].timestamp !=
18894 time_old) {
18895 /* ... save timestamp info for the calculation of the RX status
18896 during the consecutive sample hit*/
18897 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x605].timestamp;
18898
18899 /* ... set the processed flag to one */
18900 L4_MABX_B.SFunction1_o7_a = 1.0;
18901 L4_MABX_B.SFunction1_o8_i = (real_T)
18902 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x605].timestamp;
18903 L4_MABX_B.SFunction1_o9_eu = (real_T)
18904 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x605].deltatime;
18905 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x605].data;
18906
18907 /* Decode CAN message */
18908 {
18909 {
18910 rtican_Signal_t CAN_Sgn;
18911
18912 /* ...... "PX2_MapLaneNearPos" (0|16, standard signal, signed int, little endian) */
18913 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18914 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
18915 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18916 if (CAN_Sgn.SignedSgn >> 15) {
18917 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18918 }
18919
18920 L4_MABX_B.SFunction1_o1_lk = 0.00390625 * ( ((real_T)
18921 CAN_Sgn.SignedSgn) );
18922
18923 /* ...... "PX2_MapLaneMidPos" (16|16, standard signal, signed int, little endian) */
18924 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
18925 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
18926 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18927 if (CAN_Sgn.SignedSgn >> 15) {
18928 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18929 }
18930
18931 L4_MABX_B.SFunction1_o2_jq = 0.00390625 * ( ((real_T)
18932 CAN_Sgn.SignedSgn) );
18933
18934 /* ...... "PX2_MapLaneFarPos" (32|16, standard signal, signed int, little endian) */
18935 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
18936 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
18937 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18938 if (CAN_Sgn.SignedSgn >> 15) {
18939 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18940 }
18941
18942 L4_MABX_B.SFunction1_o3_ou = 0.00390625 * ( ((real_T)
18943 CAN_Sgn.SignedSgn) );
18944
18945 /* ...... "PX2_EgoLaneNearPosValid" (48|2, standard signal, unsigned int, little endian) */
18946 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
18947 CAN_Sgn.UnsignedSgn &= 0x00000003;
18948 L4_MABX_B.SFunction1_o4_pe = ((real_T) CAN_Sgn.UnsignedSgn);
18949
18950 /* ...... "PX2_EgoLaneMidPosValid" (50|2, standard signal, unsigned int, little endian) */
18951 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
18952 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18953 CAN_Sgn.UnsignedSgn &= 0x00000003;
18954 L4_MABX_B.SFunction1_o5_dx = ((real_T) CAN_Sgn.UnsignedSgn);
18955
18956 /* ...... "PX2_EgoLaneFarPosValid" (52|2, standard signal, unsigned int, little endian) */
18957 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
18958 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
18959 CAN_Sgn.UnsignedSgn &= 0x00000003;
18960 L4_MABX_B.SFunction1_o6_l = ((real_T) CAN_Sgn.UnsignedSgn);
18961 }
18962 }
18963 } else {
18964 /* set RX status to 0 because no new message has arrived */
18965 L4_MABX_B.SFunction1_o7_a = 0.0;
18966 }
18967 }
18968 }
18969
18970 /* End of Constant: '<S438>/CAN_RX-Enable_PX2_MapLaneEgoLeft' */
18971 /* End of Outputs for SubSystem: '<S616>/PX2_MapLaneEgoRight' */
18972
18973 /* DataTypeConversion: '<S616>/Data Type Conversion10' */
18974 L4_MABX_B.RX_delta_time_fu4 = L4_MABX_B.SFunction1_o9_eu;
18975
18976 /* DataTypeConversion: '<S616>/Data Type Conversion8' */
18977 L4_MABX_B.RX_status_ll = (L4_MABX_B.SFunction1_o7_a != 0.0);
18978
18979 /* DataTypeConversion: '<S616>/Data Type Conversion9' */
18980 L4_MABX_B.RX_time_mq = L4_MABX_B.SFunction1_o8_i;
18981
18982 /* Outputs for Enabled SubSystem: '<S618>/PX2_EgoLanePos' incorporates:
18983 * EnablePort: '<S619>/Enable'
18984 */
18985 /* Constant: '<S439>/Constant' */
18986 if (L4_MABX_P.Constant_Value_b2) {
18987 /* S-Function (rti_commonblock): '<S619>/S-Function1' */
18988 /* This comment workarounds a code generation problem */
18989
18990 /* dSPACE RTICAN RX Message Block: "PX2_EgoLanePos" Id:1540 */
18991 {
18992 UInt32 *CAN_Msg;
18993 static dsfloat time_old = 0.0;
18994
18995 /* Read status and timestamp info (previous message) */
18996 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x604].timestamp !=
18997 time_old) {
18998 /* ... save timestamp info for the calculation of the RX status
18999 during the consecutive sample hit*/
19000 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x604].timestamp;
19001
19002 /* ... set the processed flag to one */
19003 L4_MABX_B.SFunction1_o7_m = 1.0;
19004 L4_MABX_B.SFunction1_o8_c5 = (real_T)
19005 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x604].timestamp;
19006 L4_MABX_B.SFunction1_o9_eo = (real_T)
19007 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x604].deltatime;
19008 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x604].data;
19009
19010 /* Decode CAN message */
19011 {
19012 {
19013 rtican_Signal_t CAN_Sgn;
19014
19015 /* ...... "PX2_EgoLaneNearPosErr" (0|16, standard signal, signed int, little endian) */
19016 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19017 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
19018 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19019 if (CAN_Sgn.SignedSgn >> 15) {
19020 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19021 }
19022
19023 L4_MABX_B.SFunction1_o1_af = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
19024
19025 /* ...... "PX2_EgoLaneMidPosErr" (16|16, standard signal, signed int, little endian) */
19026 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19027 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
19028 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19029 if (CAN_Sgn.SignedSgn >> 15) {
19030 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19031 }
19032
19033 L4_MABX_B.SFunction1_o2_oj = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
19034
19035 /* ...... "PX2_EgoLaneFarPosErr" (32|16, standard signal, signed int, little endian) */
19036 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
19037 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
19038 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19039 if (CAN_Sgn.SignedSgn >> 15) {
19040 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19041 }
19042
19043 L4_MABX_B.SFunction1_o3_cd = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
19044
19045 /* ...... "PX2_EgoLaneNearPosValid" (48|2, standard signal, unsigned int, little endian) */
19046 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19047 CAN_Sgn.UnsignedSgn &= 0x00000003;
19048 L4_MABX_B.SFunction1_o4_ow = ((real_T) CAN_Sgn.UnsignedSgn);
19049
19050 /* ...... "PX2_EgoLaneMidPosValid" (50|2, standard signal, unsigned int, little endian) */
19051 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19052 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
19053 CAN_Sgn.UnsignedSgn &= 0x00000003;
19054 L4_MABX_B.SFunction1_o5_d = ((real_T) CAN_Sgn.UnsignedSgn);
19055
19056 /* ...... "PX2_EgoLaneFarPosValid" (52|2, standard signal, unsigned int, little endian) */
19057 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19058 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
19059 CAN_Sgn.UnsignedSgn &= 0x00000003;
19060 L4_MABX_B.SFunction1_o6_m = ((real_T) CAN_Sgn.UnsignedSgn);
19061 }
19062 }
19063 } else {
19064 /* set RX status to 0 because no new message has arrived */
19065 L4_MABX_B.SFunction1_o7_m = 0.0;
19066 }
19067 }
19068 }
19069
19070 /* End of Constant: '<S439>/Constant' */
19071 /* End of Outputs for SubSystem: '<S618>/PX2_EgoLanePos' */
19072
19073 /* DataTypeConversion: '<S618>/Data Type Conversion10' */
19074 L4_MABX_B.RX_delta_time_aq = L4_MABX_B.SFunction1_o9_eo;
19075
19076 /* DataTypeConversion: '<S618>/Data Type Conversion8' */
19077 L4_MABX_B.RX_status_hk = (L4_MABX_B.SFunction1_o7_m != 0.0);
19078
19079 /* DataTypeConversion: '<S618>/Data Type Conversion9' */
19080 L4_MABX_B.RX_time_c = L4_MABX_B.SFunction1_o8_c5;
19081
19082 /* DataTypeConversion: '<S620>/Data Type Conversion10' */
19083 L4_MABX_B.RX_delta_time_o = L4_MABX_B.SFunction1_o7_li;
19084
19085 /* DataTypeConversion: '<S620>/Data Type Conversion9' */
19086 L4_MABX_B.RX_time_pg = L4_MABX_B.SFunction1_o6_h;
19087
19088 /* DataTypeConversion: '<S622>/Data Type Conversion10' */
19089 L4_MABX_B.RX_delta_time_je = L4_MABX_B.SFunction1_o28;
19090
19091 /* DataTypeConversion: '<S622>/Data Type Conversion8' */
19092 L4_MABX_B.RX_status_jwi = (L4_MABX_B.SFunction1_o26 != 0.0);
19093
19094 /* DataTypeConversion: '<S622>/Data Type Conversion9' */
19095 L4_MABX_B.RX_time_bf = L4_MABX_B.SFunction1_o27;
19096
19097 /* DataTypeConversion: '<S624>/Data Type Conversion10' */
19098 L4_MABX_B.RX_delta_time_as = L4_MABX_B.SFunction1_o10;
19099
19100 /* DataTypeConversion: '<S624>/Data Type Conversion8' */
19101 L4_MABX_B.RX_status_ag = (L4_MABX_B.SFunction1_o8_h != 0.0);
19102
19103 /* DataTypeConversion: '<S624>/Data Type Conversion9' */
19104 L4_MABX_B.RX_time_d1 = L4_MABX_B.SFunction1_o9_n;
19105
19106 /* DataTypeConversion: '<S626>/Data Type Conversion10' */
19107 L4_MABX_B.RX_delta_time_n2 = L4_MABX_B.SFunction1_o9;
19108
19109 /* DataTypeConversion: '<S626>/Data Type Conversion8' */
19110 L4_MABX_B.RX_status_ak = (L4_MABX_B.SFunction1_o7_e != 0.0);
19111
19112 /* DataTypeConversion: '<S626>/Data Type Conversion9' */
19113 L4_MABX_B.RX_time_b4 = L4_MABX_B.SFunction1_o8_d;
19114
19115 /* Outputs for Enabled SubSystem: '<S628>/VEP1' incorporates:
19116 * EnablePort: '<S629>/Enable'
19117 */
19118 /* Constant: '<S444>/Constant' */
19119 if (L4_MABX_P.Constant_Value_mi > 0.0) {
19120 /* S-Function (rti_commonblock): '<S629>/S-Function1' */
19121 /* This comment workarounds a code generation problem */
19122
19123 /* dSPACE RTICAN RX Message Block: "VEP1" Id:419362563 */
19124 {
19125 UInt32 *CAN_Msg;
19126 static dsfloat time_old = 0.0;
19127
19128 /* Read status and timestamp info (previous message) */
19129 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF703].timestamp !=
19130 time_old) {
19131 /* ... save timestamp info for the calculation of the RX status
19132 during the consecutive sample hit*/
19133 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF703].
19134 timestamp;
19135
19136 /* ... set the processed flag to one */
19137 L4_MABX_B.SFunction1_o6 = 1.0;
19138 L4_MABX_B.SFunction1_o7 = (real_T)
19139 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF703].timestamp;
19140 L4_MABX_B.SFunction1_o8 = (real_T)
19141 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF703].deltatime;
19142 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF703].data;
19143
19144 /* Decode CAN message */
19145 {
19146 {
19147 rtican_Signal_t CAN_Sgn;
19148
19149 /* ...... "NetBatteryCurrent" (0|8, standard signal, unsigned int, little endian) */
19150 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19151 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19152 L4_MABX_B.SFunction1_o1_kt = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
19153 );
19154
19155 /* ...... "AltCurrent" (8|8, standard signal, unsigned int, little endian) */
19156 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
19157 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19158 L4_MABX_B.SFunction1_o2_i3 = ((real_T) CAN_Sgn.UnsignedSgn);
19159
19160 /* ...... "ChargingSystemPotential" (16|16, standard signal, unsigned int, little endian) */
19161 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19162 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
19163 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
19164 L4_MABX_B.SFunction1_o3_hm = 0.05 * ( ((real_T) CAN_Sgn.UnsignedSgn)
19165 );
19166
19167 /* ...... "BatteryPotential_PowerInput1" (32|16, standard signal, unsigned int, little endian) */
19168 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
19169 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
19170 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
19171 L4_MABX_B.SFunction1_o4_dsy = 0.05 * ( ((real_T) CAN_Sgn.UnsignedSgn)
19172 );
19173
19174 /* ...... "KeyswitchBatteryPotential" (48|16, standard signal, unsigned int, little endian) */
19175 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19176 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[7];
19177 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
19178 L4_MABX_B.SFunction1_o5 = 0.05 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
19179 }
19180 }
19181 } else {
19182 /* set RX status to 0 because no new message has arrived */
19183 L4_MABX_B.SFunction1_o6 = 0.0;
19184 }
19185 }
19186 }
19187
19188 /* End of Constant: '<S444>/Constant' */
19189 /* End of Outputs for SubSystem: '<S628>/VEP1' */
19190
19191 /* DataTypeConversion: '<S628>/Data Type Conversion1' */
19192 L4_MABX_B.PitchAngleExRange_n = L4_MABX_B.SFunction1_o1_kt;
19193
19194 /* DataTypeConversion: '<S628>/Data Type Conversion10' */
19195 L4_MABX_B.RX_delta_time_pm = L4_MABX_B.SFunction1_o8;
19196
19197 /* DataTypeConversion: '<S628>/Data Type Conversion2' */
19198 L4_MABX_B.AltCurrent = L4_MABX_B.SFunction1_o2_i3;
19199
19200 /* DataTypeConversion: '<S628>/Data Type Conversion3' */
19201 L4_MABX_B.ChargingSystemPotential = L4_MABX_B.SFunction1_o3_hm;
19202
19203 /* DataTypeConversion: '<S628>/Data Type Conversion4' */
19204 L4_MABX_B.BatteryPotential_PowerInput1 = L4_MABX_B.SFunction1_o4_dsy;
19205
19206 /* DataTypeConversion: '<S628>/Data Type Conversion5' */
19207 L4_MABX_B.KeyswitchBatteryPotential = L4_MABX_B.SFunction1_o5;
19208
19209 /* DataTypeConversion: '<S628>/Data Type Conversion8' */
19210 L4_MABX_B.RX_status_no = (L4_MABX_B.SFunction1_o6 != 0.0);
19211
19212 /* DataTypeConversion: '<S628>/Data Type Conversion9' */
19213 L4_MABX_B.RX_time_hj = L4_MABX_B.SFunction1_o7;
19214
19215 /* RelationalOperator: '<S631>/Relational Operator2' incorporates:
19216 * Constant: '<S631>/TRUCK_166_VIN_CPV'
19217 */
19218 L4_MABX_B.RelationalOperator2[0] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[0] !=
19219 L4_MABX_B.DataTypeConversion_pj);
19220 L4_MABX_B.RelationalOperator2[1] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[1] !=
19221 L4_MABX_B.DataTypeConversion1_pr);
19222 L4_MABX_B.RelationalOperator2[2] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[2] !=
19223 L4_MABX_B.DataTypeConversion2_i1);
19224 L4_MABX_B.RelationalOperator2[3] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[3] !=
19225 L4_MABX_B.DataTypeConversion3_mu);
19226 L4_MABX_B.RelationalOperator2[4] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[4] !=
19227 L4_MABX_B.DataTypeConversion4_k);
19228 L4_MABX_B.RelationalOperator2[5] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[5] !=
19229 L4_MABX_B.DataTypeConversion5_c);
19230 L4_MABX_B.RelationalOperator2[6] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[6] !=
19231 L4_MABX_B.DataTypeConversion6_a);
19232 L4_MABX_B.RelationalOperator2[7] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[7] !=
19233 L4_MABX_B.DataTypeConversion7_h);
19234 L4_MABX_B.RelationalOperator2[8] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[8] !=
19235 L4_MABX_B.DataTypeConversion8_b);
19236 L4_MABX_B.RelationalOperator2[9] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[9] !=
19237 L4_MABX_B.DataTypeConversion9_m);
19238 L4_MABX_B.RelationalOperator2[10] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[10] !=
19239 L4_MABX_B.DataTypeConversion10_n);
19240 L4_MABX_B.RelationalOperator2[11] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[11] !=
19241 L4_MABX_B.DataTypeConversion11_m2);
19242 L4_MABX_B.RelationalOperator2[12] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[12] !=
19243 L4_MABX_B.DataTypeConversion12);
19244 L4_MABX_B.RelationalOperator2[13] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[13] !=
19245 L4_MABX_B.DataTypeConversion14_k);
19246 L4_MABX_B.RelationalOperator2[14] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[14] !=
19247 L4_MABX_B.DataTypeConversion13_h);
19248 L4_MABX_B.RelationalOperator2[15] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[15] !=
19249 L4_MABX_B.DataTypeConversion15_k);
19250 L4_MABX_B.RelationalOperator2[16] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[16] !=
19251 L4_MABX_B.DataTypeConversion16_i);
19252
19253 /* Sum: '<S631>/Add1' */
19254 tmp = 0U;
19255 for (i = 0; i < 17; i++) {
19256 tmp += L4_MABX_B.RelationalOperator2[i];
19257 }
19258
19259 L4_MABX_B.Add1_f4 = (uint8_T)tmp;
19260
19261 /* End of Sum: '<S631>/Add1' */
19262
19263 /* RelationalOperator: '<S636>/Compare' incorporates:
19264 * Constant: '<S636>/Constant'
19265 */
19266 L4_MABX_B.Compare_gk = (L4_MABX_B.Add1_f4 == L4_MABX_P.Constant_Value_oc);
19267
19268 /* UnitDelay: '<S631>/Unit_Delay2' */
19269 L4_MABX_B.Unit_Delay2_gj = L4_MABX_DW.Unit_Delay2_DSTATE_l;
19270
19271 /* Logic: '<S631>/Logical Operator1' */
19272 L4_MABX_B.LogicalOperator1_h1 = (L4_MABX_B.Unit_Delay2_gj &&
19273 L4_MABX_B.Compare_gk);
19274
19275 /* Logic: '<S637>/Logical Operator2' */
19276 L4_MABX_B.LogicalOperator2_h = !L4_MABX_B.LogicalOperator1_h;
19277
19278 /* UnitDelay: '<S631>/Unit_Delay1' */
19279 L4_MABX_B.Unit_Delay1_d = L4_MABX_DW.Unit_Delay1_DSTATE_o;
19280
19281 /* Logic: '<S638>/Logical Operator3' */
19282 L4_MABX_B.LogicalOperator3_jm = !L4_MABX_B.Unit_Delay1_d;
19283
19284 /* UnitDelay: '<S638>/Unit_Delay' */
19285 L4_MABX_B.Unit_Delay_c = L4_MABX_DW.Unit_Delay_DSTATE_c1;
19286
19287 /* Logic: '<S638>/Logical Operator' */
19288 L4_MABX_B.LogicalOperator_dvk = (L4_MABX_B.LogicalOperator3_jm &&
19289 L4_MABX_B.Unit_Delay_c);
19290
19291 /* Logic: '<S638>/Logical Operator1' */
19292 L4_MABX_B.LogicalOperator1_j = (L4_MABX_B.LogicalOperator1_h1 ||
19293 L4_MABX_B.LogicalOperator_dvk);
19294
19295 /* Logic: '<S638>/Logical Operator2' */
19296 L4_MABX_B.LogicalOperator2_n = !L4_MABX_B.LogicalOperator1_j;
19297
19298 /* Constant: '<S401>/Constant2' */
19299 L4_MABX_B.PX2_HeartBeat = L4_MABX_P.Constant2_Value_mc;
19300
19301 /* RelationalOperator: '<S668>/Operator' incorporates:
19302 * Constant: '<S455>/Constant1'
19303 */
19304 L4_MABX_B.Operator_ok = (L4_MABX_B.DataTypeConversion_cn[0] ==
19305 L4_MABX_P.Constant1_Value_ht);
19306
19307 /* Outputs for Enabled SubSystem: '<S455>/Decode_TPCM_CTS' incorporates:
19308 * EnablePort: '<S663>/Enable'
19309 */
19310 if (L4_MABX_B.Operator_ok) {
19311 /* SignalConversion: '<S680>/Signal Conversion' */
19312 L4_MABX_B.SPN2556_ControlByte_e = L4_MABX_B.DataTypeConversion_cn[0];
19313
19314 /* SignalConversion: '<S681>/Signal Conversion' */
19315 L4_MABX_B.SPN2561_NumberOfPacketsThatCanB = L4_MABX_B.DataTypeConversion_cn
19316 [1];
19317
19318 /* SignalConversion: '<S682>/Signal Conversion' */
19319 L4_MABX_B.SPN2562_NextPacketNumberToBeSen = L4_MABX_B.DataTypeConversion_cn
19320 [2];
19321
19322 /* DataTypeConversion: '<S683>/Data Type Conversion' */
19323 L4_MABX_B.DataTypeConversion_mo = L4_MABX_B.DataTypeConversion_cn[5];
19324
19325 /* DataTypeConversion: '<S683>/Data Type Conversion1' */
19326 L4_MABX_B.DataTypeConversion1_cp = L4_MABX_B.DataTypeConversion_cn[6];
19327
19328 /* DataTypeConversion: '<S683>/Data Type Conversion2' */
19329 L4_MABX_B.DataTypeConversion2_gj = L4_MABX_B.DataTypeConversion_cn[7];
19330
19331 /* ArithShift: '<S683>/Shift Arithmetic1' */
19332 L4_MABX_B.ShiftArithmetic1_h = L4_MABX_B.DataTypeConversion1_cp << 8;
19333
19334 /* ArithShift: '<S683>/Shift Arithmetic2' */
19335 L4_MABX_B.ShiftArithmetic2_ou = L4_MABX_B.DataTypeConversion2_gj << 16;
19336
19337 /* S-Function (sfix_bitop): '<S684>/Operator' */
19338 L4_MABX_B.Operator_my = L4_MABX_B.DataTypeConversion_mo |
19339 L4_MABX_B.ShiftArithmetic1_h | L4_MABX_B.ShiftArithmetic2_ou;
19340
19341 /* DataTypeConversion: '<S684>/DataType' */
19342 L4_MABX_B.DataType_jt = L4_MABX_B.Operator_my;
19343 }
19344
19345 /* End of Outputs for SubSystem: '<S455>/Decode_TPCM_CTS' */
19346
19347 /* RelationalOperator: '<S671>/Operator' incorporates:
19348 * Constant: '<S455>/Constant4'
19349 */
19350 L4_MABX_B.Operator_al = (L4_MABX_B.DataTypeConversion_cn[0] ==
19351 L4_MABX_P.Constant4_Value_j4);
19352
19353 /* Outputs for Enabled SubSystem: '<S455>/Decode_TPCM_ConnectionAbort' incorporates:
19354 * EnablePort: '<S664>/Enable'
19355 */
19356 if (L4_MABX_B.Operator_al) {
19357 /* SignalConversion: '<S686>/Signal Conversion' */
19358 L4_MABX_B.SPN2556_ControlByte_p = L4_MABX_B.DataTypeConversion_cn[0];
19359
19360 /* SignalConversion: '<S687>/Signal Conversion' */
19361 L4_MABX_B.SPN2570_ConnectionAbortReason = L4_MABX_B.DataTypeConversion_cn[1];
19362
19363 /* DataTypeConversion: '<S688>/Data Type Conversion' */
19364 L4_MABX_B.DataTypeConversion_b3 = L4_MABX_B.DataTypeConversion_cn[5];
19365
19366 /* DataTypeConversion: '<S688>/Data Type Conversion1' */
19367 L4_MABX_B.DataTypeConversion1_pk = L4_MABX_B.DataTypeConversion_cn[6];
19368
19369 /* DataTypeConversion: '<S688>/Data Type Conversion2' */
19370 L4_MABX_B.DataTypeConversion2_p = L4_MABX_B.DataTypeConversion_cn[7];
19371
19372 /* ArithShift: '<S688>/Shift Arithmetic1' */
19373 L4_MABX_B.ShiftArithmetic1_n = L4_MABX_B.DataTypeConversion1_pk << 8;
19374
19375 /* ArithShift: '<S688>/Shift Arithmetic2' */
19376 L4_MABX_B.ShiftArithmetic2_o = L4_MABX_B.DataTypeConversion2_p << 16;
19377
19378 /* S-Function (sfix_bitop): '<S689>/Operator' */
19379 L4_MABX_B.Operator_bd = L4_MABX_B.DataTypeConversion_b3 |
19380 L4_MABX_B.ShiftArithmetic1_n | L4_MABX_B.ShiftArithmetic2_o;
19381
19382 /* DataTypeConversion: '<S689>/DataType' */
19383 L4_MABX_B.DataType_e1 = L4_MABX_B.Operator_bd;
19384 }
19385
19386 /* End of Outputs for SubSystem: '<S455>/Decode_TPCM_ConnectionAbort' */
19387
19388 /* RelationalOperator: '<S669>/Operator' incorporates:
19389 * Constant: '<S455>/Constant2'
19390 */
19391 L4_MABX_B.Operator_aq1 = (L4_MABX_B.DataTypeConversion_cn[0] ==
19392 L4_MABX_P.Constant2_Value_is);
19393
19394 /* Outputs for Enabled SubSystem: '<S455>/Decode_TPCM_EndOfMessageAck' incorporates:
19395 * EnablePort: '<S665>/Enable'
19396 */
19397 if (L4_MABX_B.Operator_aq1) {
19398 /* SignalConversion: '<S691>/Signal Conversion' */
19399 L4_MABX_B.SPN2556_ControlByte_k = L4_MABX_B.DataTypeConversion_cn[0];
19400
19401 /* DataTypeConversion: '<S692>/Data Type Conversion' */
19402 L4_MABX_B.DataTypeConversion_h = L4_MABX_B.DataTypeConversion_cn[1];
19403
19404 /* DataTypeConversion: '<S692>/Data Type Conversion1' */
19405 L4_MABX_B.DataTypeConversion1_ld = L4_MABX_B.DataTypeConversion_cn[2];
19406
19407 /* ArithShift: '<S692>/Shift Arithmetic2' */
19408 L4_MABX_B.ShiftArithmetic2_i = (uint16_T)(L4_MABX_B.DataTypeConversion1_ld <<
19409 8);
19410
19411 /* S-Function (sfix_bitop): '<S695>/Operator' */
19412 L4_MABX_B.Operator_fq = (uint16_T)(L4_MABX_B.DataTypeConversion_h |
19413 L4_MABX_B.ShiftArithmetic2_i);
19414
19415 /* DataTypeConversion: '<S695>/DataType' */
19416 L4_MABX_B.DataType_aw = L4_MABX_B.Operator_fq;
19417
19418 /* SignalConversion: '<S693>/Signal Conversion' */
19419 L4_MABX_B.SPN2565_TotalNumberOfPackets = L4_MABX_B.DataTypeConversion_cn[3];
19420
19421 /* DataTypeConversion: '<S694>/Data Type Conversion' */
19422 L4_MABX_B.DataTypeConversion_j = L4_MABX_B.DataTypeConversion_cn[5];
19423
19424 /* DataTypeConversion: '<S694>/Data Type Conversion1' */
19425 L4_MABX_B.DataTypeConversion1_iu = L4_MABX_B.DataTypeConversion_cn[6];
19426
19427 /* DataTypeConversion: '<S694>/Data Type Conversion2' */
19428 L4_MABX_B.DataTypeConversion2_ji = L4_MABX_B.DataTypeConversion_cn[7];
19429
19430 /* ArithShift: '<S694>/Shift Arithmetic1' */
19431 L4_MABX_B.ShiftArithmetic1_a = L4_MABX_B.DataTypeConversion1_iu << 8;
19432
19433 /* ArithShift: '<S694>/Shift Arithmetic2' */
19434 L4_MABX_B.ShiftArithmetic2_g = L4_MABX_B.DataTypeConversion2_ji << 16;
19435
19436 /* S-Function (sfix_bitop): '<S696>/Operator' */
19437 L4_MABX_B.Operator_n = L4_MABX_B.DataTypeConversion_j |
19438 L4_MABX_B.ShiftArithmetic1_a | L4_MABX_B.ShiftArithmetic2_g;
19439
19440 /* DataTypeConversion: '<S696>/DataType' */
19441 L4_MABX_B.DataType_cn = L4_MABX_B.Operator_n;
19442 }
19443
19444 /* End of Outputs for SubSystem: '<S455>/Decode_TPCM_EndOfMessageAck' */
19445
19446 /* RelationalOperator: '<S667>/Operator' incorporates:
19447 * Constant: '<S455>/Constant'
19448 */
19449 L4_MABX_B.Operator_pm1 = (L4_MABX_B.DataTypeConversion_cn[0] ==
19450 L4_MABX_P.Constant_Value_pw);
19451
19452 /* Outputs for Enabled SubSystem: '<S455>/Decode_TPCM_RTS' incorporates:
19453 * EnablePort: '<S666>/Enable'
19454 */
19455 if (L4_MABX_B.Operator_pm1) {
19456 /* SignalConversion: '<S698>/Signal Conversion' */
19457 L4_MABX_B.SPN2556_ControlByte = L4_MABX_B.DataTypeConversion_cn[0];
19458
19459 /* DataTypeConversion: '<S699>/Data Type Conversion' */
19460 L4_MABX_B.DataTypeConversion_ah = L4_MABX_B.DataTypeConversion_cn[1];
19461
19462 /* DataTypeConversion: '<S699>/Data Type Conversion1' */
19463 L4_MABX_B.DataTypeConversion1_jm = L4_MABX_B.DataTypeConversion_cn[2];
19464
19465 /* ArithShift: '<S699>/Shift Arithmetic2' */
19466 L4_MABX_B.ShiftArithmetic2_p = (uint16_T)(L4_MABX_B.DataTypeConversion1_jm <<
19467 8);
19468
19469 /* S-Function (sfix_bitop): '<S703>/Operator' */
19470 L4_MABX_B.Operator_hk = (uint16_T)(L4_MABX_B.DataTypeConversion_ah |
19471 L4_MABX_B.ShiftArithmetic2_p);
19472
19473 /* DataTypeConversion: '<S703>/DataType' */
19474 L4_MABX_B.DataType_g1 = L4_MABX_B.Operator_hk;
19475
19476 /* SignalConversion: '<S700>/Signal Conversion' */
19477 L4_MABX_B.SPN2558_TotalNumberOfPackets = L4_MABX_B.DataTypeConversion_cn[3];
19478
19479 /* SignalConversion: '<S701>/Signal Conversion' */
19480 L4_MABX_B.SPN2559_MaximumNumberOfPackets = L4_MABX_B.DataTypeConversion_cn[4];
19481
19482 /* DataTypeConversion: '<S702>/Data Type Conversion' */
19483 L4_MABX_B.DataTypeConversion_lr = L4_MABX_B.DataTypeConversion_cn[5];
19484
19485 /* DataTypeConversion: '<S702>/Data Type Conversion1' */
19486 L4_MABX_B.DataTypeConversion1_m = L4_MABX_B.DataTypeConversion_cn[6];
19487
19488 /* DataTypeConversion: '<S702>/Data Type Conversion2' */
19489 L4_MABX_B.DataTypeConversion2_o1 = L4_MABX_B.DataTypeConversion_cn[7];
19490
19491 /* ArithShift: '<S702>/Shift Arithmetic1' */
19492 L4_MABX_B.ShiftArithmetic1 = L4_MABX_B.DataTypeConversion1_m << 8;
19493
19494 /* ArithShift: '<S702>/Shift Arithmetic2' */
19495 L4_MABX_B.ShiftArithmetic2 = L4_MABX_B.DataTypeConversion2_o1 << 16;
19496
19497 /* S-Function (sfix_bitop): '<S704>/Operator' */
19498 L4_MABX_B.Operator_e = L4_MABX_B.DataTypeConversion_lr |
19499 L4_MABX_B.ShiftArithmetic1 | L4_MABX_B.ShiftArithmetic2;
19500
19501 /* DataTypeConversion: '<S704>/DataType' */
19502 L4_MABX_B.DataType_gy = L4_MABX_B.Operator_e;
19503 }
19504
19505 /* End of Outputs for SubSystem: '<S455>/Decode_TPCM_RTS' */
19506
19507 /* RelationalOperator: '<S573>/Operator' incorporates:
19508 * Constant: '<S430>/Constant'
19509 * Constant: '<S570>/Constant'
19510 */
19511 L4_MABX_B.Operator_hq1 = (CANR_PROPB_REAX_3_13_CHANNEL_APV ==
19512 L4_MABX_P.Constant_Value_f0);
19513
19514 /* Outputs for Enabled SubSystem: '<S568>/CAN_TYPE1_RX_M1_C1' incorporates:
19515 * EnablePort: '<S571>/Enable'
19516 */
19517 if (L4_MABX_B.Operator_hq1) {
19518 /* S-Function (rti_commonblock): '<S571>/S-Function1' */
19519 /* This comment workarounds a code generation problem */
19520
19521 /* dSPACE RTICAN RX Message Block: "PropB_REAX_3_13" Id:419426579 */
19522 {
19523 UInt32 *CAN_Msg;
19524 static dsfloat time_old = 0.0;
19525
19526 /* Read status and timestamp info (previous message) */
19527 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF113].timestamp !=
19528 time_old) {
19529 /* ... save timestamp info for the calculation of the RX status
19530 during the consecutive sample hit*/
19531 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF113].
19532 timestamp;
19533
19534 /* ... set the processed flag to one */
19535 L4_MABX_B.SFunction1_o9_bs = 1.0;
19536 L4_MABX_B.SFunction1_o10_b = (real_T)
19537 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF113].timestamp;
19538 L4_MABX_B.SFunction1_o11_f = (real_T)
19539 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF113].deltatime;
19540 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF113].data;
19541
19542 /* Decode CAN message */
19543 {
19544 {
19545 rtican_Signal_t CAN_Sgn;
19546
19547 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
19548 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19549 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19550 L4_MABX_B.SFunction1_o1_gy = ((real_T) CAN_Sgn.UnsignedSgn);
19551
19552 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
19553 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
19554 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19555 L4_MABX_B.SFunction1_o2_nb5 = ((real_T) CAN_Sgn.UnsignedSgn);
19556
19557 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
19558 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19559 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19560 L4_MABX_B.SFunction1_o3_fa = ((real_T) CAN_Sgn.UnsignedSgn);
19561
19562 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
19563 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
19564 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19565 L4_MABX_B.SFunction1_o4_p4 = ((real_T) CAN_Sgn.UnsignedSgn);
19566
19567 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
19568 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
19569 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19570 L4_MABX_B.SFunction1_o5_fv = ((real_T) CAN_Sgn.UnsignedSgn);
19571
19572 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
19573 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
19574 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19575 L4_MABX_B.SFunction1_o6_ot = ((real_T) CAN_Sgn.UnsignedSgn);
19576
19577 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
19578 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19579 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19580 L4_MABX_B.SFunction1_o7_f = ((real_T) CAN_Sgn.UnsignedSgn);
19581
19582 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
19583 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
19584 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19585 L4_MABX_B.SFunction1_o8_iq = ((real_T) CAN_Sgn.UnsignedSgn);
19586 }
19587 }
19588 } else {
19589 /* set RX status to 0 because no new message has arrived */
19590 L4_MABX_B.SFunction1_o9_bs = 0.0;
19591 }
19592 }
19593 }
19594
19595 /* End of Outputs for SubSystem: '<S568>/CAN_TYPE1_RX_M1_C1' */
19596
19597 /* RelationalOperator: '<S574>/Operator' incorporates:
19598 * Constant: '<S430>/Constant'
19599 * Constant: '<S570>/Constant1'
19600 */
19601 L4_MABX_B.Operator_fa = (CANR_PROPB_REAX_3_13_CHANNEL_APV ==
19602 L4_MABX_P.Constant1_Value_k);
19603
19604 /* Outputs for Enabled SubSystem: '<S569>/CAN_TYPE1_RX_M1_C2' incorporates:
19605 * EnablePort: '<S572>/Enable'
19606 */
19607 if (L4_MABX_B.Operator_fa) {
19608 /* S-Function (rti_commonblock): '<S572>/S-Function1' */
19609 /* This comment workarounds a code generation problem */
19610
19611 /* dSPACE RTICAN RX Message Block: "PropB_REAX_3_13" Id:419426579 */
19612 {
19613 UInt32 *CAN_Msg;
19614 static dsfloat time_old = 0.0;
19615
19616 /* Read status and timestamp info (previous message) */
19617 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF113].timestamp !=
19618 time_old) {
19619 /* ... save timestamp info for the calculation of the RX status
19620 during the consecutive sample hit*/
19621 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF113].
19622 timestamp;
19623
19624 /* ... set the processed flag to one */
19625 L4_MABX_B.SFunction1_o9_c = 1.0;
19626 L4_MABX_B.SFunction1_o10_er = (real_T)
19627 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF113].timestamp;
19628 L4_MABX_B.SFunction1_o11_a = (real_T)
19629 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF113].deltatime;
19630 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF113].data;
19631
19632 /* Decode CAN message */
19633 {
19634 {
19635 rtican_Signal_t CAN_Sgn;
19636
19637 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
19638 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19639 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19640 L4_MABX_B.SFunction1_o1_cr = ((real_T) CAN_Sgn.UnsignedSgn);
19641
19642 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
19643 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
19644 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19645 L4_MABX_B.SFunction1_o2_bs = ((real_T) CAN_Sgn.UnsignedSgn);
19646
19647 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
19648 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19649 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19650 L4_MABX_B.SFunction1_o3_g5 = ((real_T) CAN_Sgn.UnsignedSgn);
19651
19652 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
19653 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
19654 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19655 L4_MABX_B.SFunction1_o4_ov = ((real_T) CAN_Sgn.UnsignedSgn);
19656
19657 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
19658 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
19659 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19660 L4_MABX_B.SFunction1_o5_ht = ((real_T) CAN_Sgn.UnsignedSgn);
19661
19662 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
19663 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
19664 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19665 L4_MABX_B.SFunction1_o6_o2 = ((real_T) CAN_Sgn.UnsignedSgn);
19666
19667 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
19668 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19669 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19670 L4_MABX_B.SFunction1_o7_or = ((real_T) CAN_Sgn.UnsignedSgn);
19671
19672 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
19673 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
19674 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19675 L4_MABX_B.SFunction1_o8_p = ((real_T) CAN_Sgn.UnsignedSgn);
19676 }
19677 }
19678 } else {
19679 /* set RX status to 0 because no new message has arrived */
19680 L4_MABX_B.SFunction1_o9_c = 0.0;
19681 }
19682 }
19683 }
19684
19685 /* End of Outputs for SubSystem: '<S569>/CAN_TYPE1_RX_M1_C2' */
19686
19687 /* DataTypeConversion: '<S569>/Data Type Conversion' */
19688 PositionFinalLimited = L4_MABX_B.SFunction1_o1_cr;
19689 if (PositionFinalLimited < 256.0) {
19690 if (PositionFinalLimited >= 0.0) {
19691 starting_index = (uint8_T)PositionFinalLimited;
19692 } else {
19693 starting_index = 0U;
19694 }
19695 } else {
19696 starting_index = MAX_uint8_T;
19697 }
19698
19699 L4_MABX_B.DataTypeConversion_hm = starting_index;
19700
19701 /* End of DataTypeConversion: '<S569>/Data Type Conversion' */
19702
19703 /* DataTypeConversion: '<S569>/Data Type Conversion1' */
19704 PositionFinalLimited = L4_MABX_B.SFunction1_o2_bs;
19705 if (PositionFinalLimited < 256.0) {
19706 if (PositionFinalLimited >= 0.0) {
19707 starting_index = (uint8_T)PositionFinalLimited;
19708 } else {
19709 starting_index = 0U;
19710 }
19711 } else {
19712 starting_index = MAX_uint8_T;
19713 }
19714
19715 L4_MABX_B.DataTypeConversion1_b5 = starting_index;
19716
19717 /* End of DataTypeConversion: '<S569>/Data Type Conversion1' */
19718
19719 /* DataTypeConversion: '<S569>/Data Type Conversion2' */
19720 PositionFinalLimited = L4_MABX_B.SFunction1_o3_g5;
19721 if (PositionFinalLimited < 256.0) {
19722 if (PositionFinalLimited >= 0.0) {
19723 starting_index = (uint8_T)PositionFinalLimited;
19724 } else {
19725 starting_index = 0U;
19726 }
19727 } else {
19728 starting_index = MAX_uint8_T;
19729 }
19730
19731 L4_MABX_B.DataTypeConversion2_jp = starting_index;
19732
19733 /* End of DataTypeConversion: '<S569>/Data Type Conversion2' */
19734
19735 /* DataTypeConversion: '<S569>/Data Type Conversion3' */
19736 PositionFinalLimited = L4_MABX_B.SFunction1_o4_ov;
19737 if (PositionFinalLimited < 256.0) {
19738 if (PositionFinalLimited >= 0.0) {
19739 starting_index = (uint8_T)PositionFinalLimited;
19740 } else {
19741 starting_index = 0U;
19742 }
19743 } else {
19744 starting_index = MAX_uint8_T;
19745 }
19746
19747 L4_MABX_B.DataTypeConversion3_or = starting_index;
19748
19749 /* End of DataTypeConversion: '<S569>/Data Type Conversion3' */
19750
19751 /* DataTypeConversion: '<S569>/Data Type Conversion4' */
19752 PositionFinalLimited = L4_MABX_B.SFunction1_o5_ht;
19753 if (PositionFinalLimited < 256.0) {
19754 if (PositionFinalLimited >= 0.0) {
19755 starting_index = (uint8_T)PositionFinalLimited;
19756 } else {
19757 starting_index = 0U;
19758 }
19759 } else {
19760 starting_index = MAX_uint8_T;
19761 }
19762
19763 L4_MABX_B.DataTypeConversion4_dg = starting_index;
19764
19765 /* End of DataTypeConversion: '<S569>/Data Type Conversion4' */
19766
19767 /* DataTypeConversion: '<S569>/Data Type Conversion5' */
19768 PositionFinalLimited = L4_MABX_B.SFunction1_o6_o2;
19769 if (PositionFinalLimited < 256.0) {
19770 if (PositionFinalLimited >= 0.0) {
19771 starting_index = (uint8_T)PositionFinalLimited;
19772 } else {
19773 starting_index = 0U;
19774 }
19775 } else {
19776 starting_index = MAX_uint8_T;
19777 }
19778
19779 L4_MABX_B.DataTypeConversion5_h = starting_index;
19780
19781 /* End of DataTypeConversion: '<S569>/Data Type Conversion5' */
19782
19783 /* DataTypeConversion: '<S569>/Data Type Conversion6' */
19784 PositionFinalLimited = L4_MABX_B.SFunction1_o7_or;
19785 if (PositionFinalLimited < 256.0) {
19786 if (PositionFinalLimited >= 0.0) {
19787 starting_index = (uint8_T)PositionFinalLimited;
19788 } else {
19789 starting_index = 0U;
19790 }
19791 } else {
19792 starting_index = MAX_uint8_T;
19793 }
19794
19795 L4_MABX_B.DataTypeConversion6_d = starting_index;
19796
19797 /* End of DataTypeConversion: '<S569>/Data Type Conversion6' */
19798
19799 /* DataTypeConversion: '<S569>/Data Type Conversion7' */
19800 PositionFinalLimited = L4_MABX_B.SFunction1_o8_p;
19801 if (PositionFinalLimited < 256.0) {
19802 if (PositionFinalLimited >= 0.0) {
19803 starting_index = (uint8_T)PositionFinalLimited;
19804 } else {
19805 starting_index = 0U;
19806 }
19807 } else {
19808 starting_index = MAX_uint8_T;
19809 }
19810
19811 L4_MABX_B.DataTypeConversion7_d3w = starting_index;
19812
19813 /* End of DataTypeConversion: '<S569>/Data Type Conversion7' */
19814
19815 /* MultiPortSwitch: '<S430>/Multiport_Switch' incorporates:
19816 * Constant: '<S430>/Constant'
19817 */
19818 switch (CANR_PROPB_REAX_3_13_CHANNEL_APV) {
19819 case ENUM_CAN_RX_T_RX_CAN_1:
19820 /* DataTypeConversion: '<S568>/Data Type Conversion' */
19821 PositionFinalLimited = L4_MABX_B.SFunction1_o1_gy;
19822 if (PositionFinalLimited < 256.0) {
19823 if (PositionFinalLimited >= 0.0) {
19824 starting_index = (uint8_T)PositionFinalLimited;
19825 } else {
19826 starting_index = 0U;
19827 }
19828 } else {
19829 starting_index = MAX_uint8_T;
19830 }
19831
19832 L4_MABX_B.DataTypeConversion_hmw = starting_index;
19833
19834 /* End of DataTypeConversion: '<S568>/Data Type Conversion' */
19835
19836 /* DataTypeConversion: '<S568>/Data Type Conversion1' */
19837 PositionFinalLimited = L4_MABX_B.SFunction1_o2_nb5;
19838 if (PositionFinalLimited < 256.0) {
19839 if (PositionFinalLimited >= 0.0) {
19840 starting_index = (uint8_T)PositionFinalLimited;
19841 } else {
19842 starting_index = 0U;
19843 }
19844 } else {
19845 starting_index = MAX_uint8_T;
19846 }
19847
19848 L4_MABX_B.DataTypeConversion1_aqv = starting_index;
19849
19850 /* End of DataTypeConversion: '<S568>/Data Type Conversion1' */
19851
19852 /* DataTypeConversion: '<S568>/Data Type Conversion2' */
19853 PositionFinalLimited = L4_MABX_B.SFunction1_o3_fa;
19854 if (PositionFinalLimited < 256.0) {
19855 if (PositionFinalLimited >= 0.0) {
19856 starting_index = (uint8_T)PositionFinalLimited;
19857 } else {
19858 starting_index = 0U;
19859 }
19860 } else {
19861 starting_index = MAX_uint8_T;
19862 }
19863
19864 L4_MABX_B.DataTypeConversion2_n4 = starting_index;
19865
19866 /* End of DataTypeConversion: '<S568>/Data Type Conversion2' */
19867
19868 /* DataTypeConversion: '<S568>/Data Type Conversion3' */
19869 PositionFinalLimited = L4_MABX_B.SFunction1_o4_p4;
19870 if (PositionFinalLimited < 256.0) {
19871 if (PositionFinalLimited >= 0.0) {
19872 starting_index = (uint8_T)PositionFinalLimited;
19873 } else {
19874 starting_index = 0U;
19875 }
19876 } else {
19877 starting_index = MAX_uint8_T;
19878 }
19879
19880 L4_MABX_B.DataTypeConversion3_on = starting_index;
19881
19882 /* End of DataTypeConversion: '<S568>/Data Type Conversion3' */
19883
19884 /* DataTypeConversion: '<S568>/Data Type Conversion4' */
19885 PositionFinalLimited = L4_MABX_B.SFunction1_o5_fv;
19886 if (PositionFinalLimited < 256.0) {
19887 if (PositionFinalLimited >= 0.0) {
19888 starting_index = (uint8_T)PositionFinalLimited;
19889 } else {
19890 starting_index = 0U;
19891 }
19892 } else {
19893 starting_index = MAX_uint8_T;
19894 }
19895
19896 L4_MABX_B.DataTypeConversion4_hm1 = starting_index;
19897
19898 /* End of DataTypeConversion: '<S568>/Data Type Conversion4' */
19899
19900 /* DataTypeConversion: '<S568>/Data Type Conversion5' */
19901 PositionFinalLimited = L4_MABX_B.SFunction1_o6_ot;
19902 if (PositionFinalLimited < 256.0) {
19903 if (PositionFinalLimited >= 0.0) {
19904 starting_index = (uint8_T)PositionFinalLimited;
19905 } else {
19906 starting_index = 0U;
19907 }
19908 } else {
19909 starting_index = MAX_uint8_T;
19910 }
19911
19912 L4_MABX_B.DataTypeConversion5_d = starting_index;
19913
19914 /* End of DataTypeConversion: '<S568>/Data Type Conversion5' */
19915
19916 /* DataTypeConversion: '<S568>/Data Type Conversion6' */
19917 PositionFinalLimited = L4_MABX_B.SFunction1_o7_f;
19918 if (PositionFinalLimited < 256.0) {
19919 if (PositionFinalLimited >= 0.0) {
19920 starting_index = (uint8_T)PositionFinalLimited;
19921 } else {
19922 starting_index = 0U;
19923 }
19924 } else {
19925 starting_index = MAX_uint8_T;
19926 }
19927
19928 L4_MABX_B.DataTypeConversion6_g0 = starting_index;
19929
19930 /* End of DataTypeConversion: '<S568>/Data Type Conversion6' */
19931
19932 /* DataTypeConversion: '<S568>/Data Type Conversion7' */
19933 PositionFinalLimited = L4_MABX_B.SFunction1_o8_iq;
19934 if (PositionFinalLimited < 256.0) {
19935 if (PositionFinalLimited >= 0.0) {
19936 starting_index = (uint8_T)PositionFinalLimited;
19937 } else {
19938 starting_index = 0U;
19939 }
19940 } else {
19941 starting_index = MAX_uint8_T;
19942 }
19943
19944 L4_MABX_B.DataTypeConversion7_jq = starting_index;
19945
19946 /* End of DataTypeConversion: '<S568>/Data Type Conversion7' */
19947 L4_MABX_B.RawData_p[0] = L4_MABX_B.DataTypeConversion_hmw;
19948 L4_MABX_B.RawData_p[1] = L4_MABX_B.DataTypeConversion1_aqv;
19949 L4_MABX_B.RawData_p[2] = L4_MABX_B.DataTypeConversion2_n4;
19950 L4_MABX_B.RawData_p[3] = L4_MABX_B.DataTypeConversion3_on;
19951 L4_MABX_B.RawData_p[4] = L4_MABX_B.DataTypeConversion4_hm1;
19952 L4_MABX_B.RawData_p[5] = L4_MABX_B.DataTypeConversion5_d;
19953 L4_MABX_B.RawData_p[6] = L4_MABX_B.DataTypeConversion6_g0;
19954 L4_MABX_B.RawData_p[7] = L4_MABX_B.DataTypeConversion7_jq;
19955 break;
19956
19957 case ENUM_CAN_RX_T_RX_CAN_2:
19958 L4_MABX_B.RawData_p[0] = L4_MABX_B.DataTypeConversion_hm;
19959 L4_MABX_B.RawData_p[1] = L4_MABX_B.DataTypeConversion1_b5;
19960 L4_MABX_B.RawData_p[2] = L4_MABX_B.DataTypeConversion2_jp;
19961 L4_MABX_B.RawData_p[3] = L4_MABX_B.DataTypeConversion3_or;
19962 L4_MABX_B.RawData_p[4] = L4_MABX_B.DataTypeConversion4_dg;
19963 L4_MABX_B.RawData_p[5] = L4_MABX_B.DataTypeConversion5_h;
19964 L4_MABX_B.RawData_p[6] = L4_MABX_B.DataTypeConversion6_d;
19965 L4_MABX_B.RawData_p[7] = L4_MABX_B.DataTypeConversion7_d3w;
19966 break;
19967
19968 case ENUM_CAN_RX_T_RX_CAN_3:
19969 L4_MABX_B.RawData_p[0] = L4_MABX_B.DataTypeConversion_hm;
19970 L4_MABX_B.RawData_p[1] = L4_MABX_B.DataTypeConversion1_b5;
19971 L4_MABX_B.RawData_p[2] = L4_MABX_B.DataTypeConversion2_jp;
19972 L4_MABX_B.RawData_p[3] = L4_MABX_B.DataTypeConversion3_or;
19973 L4_MABX_B.RawData_p[4] = L4_MABX_B.DataTypeConversion4_dg;
19974 L4_MABX_B.RawData_p[5] = L4_MABX_B.DataTypeConversion5_h;
19975 L4_MABX_B.RawData_p[6] = L4_MABX_B.DataTypeConversion6_d;
19976 L4_MABX_B.RawData_p[7] = L4_MABX_B.DataTypeConversion7_d3w;
19977 break;
19978
19979 case ENUM_CAN_RX_T_RX_CAN_4:
19980 L4_MABX_B.RawData_p[0] = L4_MABX_B.DataTypeConversion_hm;
19981 L4_MABX_B.RawData_p[1] = L4_MABX_B.DataTypeConversion1_b5;
19982 L4_MABX_B.RawData_p[2] = L4_MABX_B.DataTypeConversion2_jp;
19983 L4_MABX_B.RawData_p[3] = L4_MABX_B.DataTypeConversion3_or;
19984 L4_MABX_B.RawData_p[4] = L4_MABX_B.DataTypeConversion4_dg;
19985 L4_MABX_B.RawData_p[5] = L4_MABX_B.DataTypeConversion5_h;
19986 L4_MABX_B.RawData_p[6] = L4_MABX_B.DataTypeConversion6_d;
19987 L4_MABX_B.RawData_p[7] = L4_MABX_B.DataTypeConversion7_d3w;
19988 break;
19989
19990 case ENUM_CAN_RX_T_RX_CAN_5:
19991 L4_MABX_B.RawData_p[0] = L4_MABX_B.DataTypeConversion_hm;
19992 L4_MABX_B.RawData_p[1] = L4_MABX_B.DataTypeConversion1_b5;
19993 L4_MABX_B.RawData_p[2] = L4_MABX_B.DataTypeConversion2_jp;
19994 L4_MABX_B.RawData_p[3] = L4_MABX_B.DataTypeConversion3_or;
19995 L4_MABX_B.RawData_p[4] = L4_MABX_B.DataTypeConversion4_dg;
19996 L4_MABX_B.RawData_p[5] = L4_MABX_B.DataTypeConversion5_h;
19997 L4_MABX_B.RawData_p[6] = L4_MABX_B.DataTypeConversion6_d;
19998 L4_MABX_B.RawData_p[7] = L4_MABX_B.DataTypeConversion7_d3w;
19999 break;
20000
20001 case ENUM_CAN_RX_T_RX_CAN_6:
20002 L4_MABX_B.RawData_p[0] = L4_MABX_B.DataTypeConversion_hm;
20003 L4_MABX_B.RawData_p[1] = L4_MABX_B.DataTypeConversion1_b5;
20004 L4_MABX_B.RawData_p[2] = L4_MABX_B.DataTypeConversion2_jp;
20005 L4_MABX_B.RawData_p[3] = L4_MABX_B.DataTypeConversion3_or;
20006 L4_MABX_B.RawData_p[4] = L4_MABX_B.DataTypeConversion4_dg;
20007 L4_MABX_B.RawData_p[5] = L4_MABX_B.DataTypeConversion5_h;
20008 L4_MABX_B.RawData_p[6] = L4_MABX_B.DataTypeConversion6_d;
20009 L4_MABX_B.RawData_p[7] = L4_MABX_B.DataTypeConversion7_d3w;
20010 break;
20011
20012 default:
20013 L4_MABX_B.RawData_p[0] = L4_MABX_B.DataTypeConversion_hm;
20014 L4_MABX_B.RawData_p[1] = L4_MABX_B.DataTypeConversion1_b5;
20015 L4_MABX_B.RawData_p[2] = L4_MABX_B.DataTypeConversion2_jp;
20016 L4_MABX_B.RawData_p[3] = L4_MABX_B.DataTypeConversion3_or;
20017 L4_MABX_B.RawData_p[4] = L4_MABX_B.DataTypeConversion4_dg;
20018 L4_MABX_B.RawData_p[5] = L4_MABX_B.DataTypeConversion5_h;
20019 L4_MABX_B.RawData_p[6] = L4_MABX_B.DataTypeConversion6_d;
20020 L4_MABX_B.RawData_p[7] = L4_MABX_B.DataTypeConversion7_d3w;
20021 break;
20022 }
20023
20024 /* S-Function (sfix_bitop): '<S647>/Operator' */
20025 L4_MABX_B.Operator_pm = (uint8_T)(L4_MABX_B.RawData_p[0] &
20026 L4_MABX_P.Operator_BitMask_a3);
20027
20028 /* DataTypeConversion: '<S647>/DataType' */
20029 L4_MABX_B.DataType_kp = L4_MABX_B.Operator_pm;
20030
20031 /* DataTypeConversion: '<S405>/Data Type Conversion' */
20032 REAX_Current_Mode = L4_MABX_B.DataType_kp;
20033
20034 /* S-Function (sfix_bitop): '<S646>/Operator' */
20035 L4_MABX_B.Operator_bo = (uint8_T)(L4_MABX_B.RawData_p[0] &
20036 L4_MABX_P.Operator_BitMask_af);
20037
20038 /* DataTypeConversion: '<S646>/DataType' */
20039 L4_MABX_B.DataType_ab3 = L4_MABX_B.Operator_bo;
20040
20041 /* ArithShift: '<S641>/Shift_Arithmetic ' */
20042 L4_MABX_B.PropB_REAX_3_ReqOperatingMode = (uint8_T)((uint32_T)
20043 L4_MABX_B.DataType_ab3 >> 4);
20044
20045 /* DataTypeConversion: '<S405>/Data Type Conversion1' */
20046 REAX_Req_Mode = L4_MABX_B.PropB_REAX_3_ReqOperatingMode;
20047
20048 /* DataTypeConversion: '<S405>/Data Type Conversion2' */
20049 REAX_Status = L4_MABX_B.RawData_p[1];
20050
20051 /* DataTypeConversion: '<S643>/Data Type Conversion1' */
20052 L4_MABX_B.DataTypeConversion1_io = L4_MABX_B.RawData_p[2];
20053
20054 /* DataTypeConversion: '<S643>/Data Type Conversion2' */
20055 L4_MABX_B.DataTypeConversion2_jb = L4_MABX_B.RawData_p[3];
20056
20057 /* ArithShift: '<S643>/Shift_Arithmetic 1' */
20058 L4_MABX_B.Shift_Arithmetic1_o = (uint16_T)(L4_MABX_B.DataTypeConversion2_jb <<
20059 8);
20060
20061 /* S-Function (sfix_bitop): '<S648>/Operator' */
20062 L4_MABX_B.Operator_lp = (uint16_T)(L4_MABX_B.DataTypeConversion1_io |
20063 L4_MABX_B.Shift_Arithmetic1_o);
20064
20065 /* DataTypeConversion: '<S648>/DataType' */
20066 L4_MABX_B.DataType_b = L4_MABX_B.Operator_lp;
20067
20068 /* DataTypeConversion: '<S643>/Data Type Conversion3' */
20069 L4_MABX_B.DataTypeConversion3_el = (int16_T)L4_MABX_B.DataType_b;
20070
20071 /* DataTypeConversion: '<S643>/Data Type Conversion4' */
20072 L4_MABX_B.DataTypeConversion4_l = L4_MABX_B.DataTypeConversion3_el;
20073
20074 /* Product: '<S643>/Product' incorporates:
20075 * Constant: '<S643>/Constant'
20076 */
20077 L4_MABX_B.PropB_REAX_3_HandwheelTorque = (real32_T)
20078 (L4_MABX_B.DataTypeConversion4_l * L4_MABX_P.Constant_Value_i0);
20079
20080 /* DataTypeConversion: '<S405>/Data Type Conversion3' */
20081 REAX_Handwheel_Torque = L4_MABX_B.PropB_REAX_3_HandwheelTorque;
20082
20083 /* DataTypeConversion: '<S644>/Data Type Conversion4' */
20084 L4_MABX_B.DataTypeConversion4_o = L4_MABX_B.RawData_p[4];
20085
20086 /* DataTypeConversion: '<S644>/Data Type Conversion5' */
20087 L4_MABX_B.DataTypeConversion5_jc = L4_MABX_B.RawData_p[5];
20088
20089 /* ArithShift: '<S644>/Shift_Arithmetic 2' */
20090 L4_MABX_B.Shift_Arithmetic2_oz = (uint16_T)(L4_MABX_B.DataTypeConversion5_jc <<
20091 8);
20092
20093 /* S-Function (sfix_bitop): '<S649>/Operator' */
20094 L4_MABX_B.Operator_d = (uint16_T)(L4_MABX_B.DataTypeConversion4_o |
20095 L4_MABX_B.Shift_Arithmetic2_oz);
20096
20097 /* DataTypeConversion: '<S649>/DataType' */
20098 L4_MABX_B.DataType_ab = L4_MABX_B.Operator_d;
20099
20100 /* DataTypeConversion: '<S644>/Data Type Conversion6' */
20101 L4_MABX_B.DataTypeConversion6_k = (int16_T)L4_MABX_B.DataType_ab;
20102
20103 /* DataTypeConversion: '<S644>/Data Type Conversion1' */
20104 L4_MABX_B.DataTypeConversion1_h = L4_MABX_B.DataTypeConversion6_k;
20105
20106 /* Product: '<S644>/Product1' incorporates:
20107 * Constant: '<S644>/Constant1'
20108 */
20109 L4_MABX_B.PropB_REAX_3_HandwheelVelocity = (real32_T)
20110 (L4_MABX_B.DataTypeConversion1_h * L4_MABX_P.Constant1_Value_ei);
20111
20112 /* DataTypeConversion: '<S405>/Data Type Conversion4' */
20113 REAX_Handwheel_Velocity = L4_MABX_B.PropB_REAX_3_HandwheelVelocity;
20114
20115 /* DataTypeConversion: '<S645>/Data Type Conversion7' */
20116 L4_MABX_B.DataTypeConversion7_j = L4_MABX_B.RawData_p[6];
20117
20118 /* DataTypeConversion: '<S645>/Data Type Conversion8' */
20119 L4_MABX_B.DataTypeConversion8_h = L4_MABX_B.RawData_p[7];
20120
20121 /* ArithShift: '<S645>/Shift_Arithmetic 3' */
20122 L4_MABX_B.Shift_Arithmetic3_e = (uint16_T)(L4_MABX_B.DataTypeConversion8_h <<
20123 8);
20124
20125 /* S-Function (sfix_bitop): '<S650>/Operator' */
20126 L4_MABX_B.Operator_fg = (uint16_T)(L4_MABX_B.DataTypeConversion7_j |
20127 L4_MABX_B.Shift_Arithmetic3_e);
20128
20129 /* DataTypeConversion: '<S650>/DataType' */
20130 L4_MABX_B.DataType_ji = L4_MABX_B.Operator_fg;
20131
20132 /* DataTypeConversion: '<S645>/Data Type Conversion9' */
20133 L4_MABX_B.DataTypeConversion9_k = (int16_T)L4_MABX_B.DataType_ji;
20134
20135 /* DataTypeConversion: '<S645>/Data Type Conversion1' */
20136 L4_MABX_B.DataTypeConversion1_b = L4_MABX_B.DataTypeConversion9_k;
20137
20138 /* Product: '<S645>/Product2' incorporates:
20139 * Constant: '<S645>/Constant2'
20140 */
20141 L4_MABX_B.PropB_REAX_3_PullCompensation = (real32_T)
20142 (L4_MABX_B.DataTypeConversion1_b * L4_MABX_P.Constant2_Value_gf);
20143
20144 /* DataTypeConversion: '<S405>/Data Type Conversion5' */
20145 REAX_Pull_Compensation = L4_MABX_B.PropB_REAX_3_PullCompensation;
20146
20147 /* DataTypeConversion: '<S569>/Data Type Conversion8' */
20148 L4_MABX_B.RX_status_e3 = (L4_MABX_B.SFunction1_o9_c != 0.0);
20149
20150 /* MultiPortSwitch: '<S430>/Multiport_Switch' incorporates:
20151 * Constant: '<S430>/Constant'
20152 */
20153 switch (CANR_PROPB_REAX_3_13_CHANNEL_APV) {
20154 case ENUM_CAN_RX_T_RX_CAN_1:
20155 /* DataTypeConversion: '<S568>/Data Type Conversion8' */
20156 L4_MABX_B.RX_status_hc = (L4_MABX_B.SFunction1_o9_bs != 0.0);
20157 L4_MABX_B.RX_status_a2 = L4_MABX_B.RX_status_hc;
20158 break;
20159
20160 case ENUM_CAN_RX_T_RX_CAN_2:
20161 L4_MABX_B.RX_status_a2 = L4_MABX_B.RX_status_e3;
20162 break;
20163
20164 case ENUM_CAN_RX_T_RX_CAN_3:
20165 L4_MABX_B.RX_status_a2 = L4_MABX_B.RX_status_e3;
20166 break;
20167
20168 case ENUM_CAN_RX_T_RX_CAN_4:
20169 L4_MABX_B.RX_status_a2 = L4_MABX_B.RX_status_e3;
20170 break;
20171
20172 case ENUM_CAN_RX_T_RX_CAN_5:
20173 L4_MABX_B.RX_status_a2 = L4_MABX_B.RX_status_e3;
20174 break;
20175
20176 case ENUM_CAN_RX_T_RX_CAN_6:
20177 L4_MABX_B.RX_status_a2 = L4_MABX_B.RX_status_e3;
20178 break;
20179
20180 default:
20181 L4_MABX_B.RX_status_a2 = L4_MABX_B.RX_status_e3;
20182 break;
20183 }
20184
20185 /* DataTypeConversion: '<S569>/Data Type Conversion9' */
20186 L4_MABX_B.RX_time_ol = L4_MABX_B.SFunction1_o10_er;
20187
20188 /* MultiPortSwitch: '<S430>/Multiport_Switch' incorporates:
20189 * Constant: '<S430>/Constant'
20190 */
20191 switch (CANR_PROPB_REAX_3_13_CHANNEL_APV) {
20192 case ENUM_CAN_RX_T_RX_CAN_1:
20193 /* DataTypeConversion: '<S568>/Data Type Conversion9' */
20194 L4_MABX_B.RX_time_it = L4_MABX_B.SFunction1_o10_b;
20195 L4_MABX_B.RX_time_ad = L4_MABX_B.RX_time_it;
20196 break;
20197
20198 case ENUM_CAN_RX_T_RX_CAN_2:
20199 L4_MABX_B.RX_time_ad = L4_MABX_B.RX_time_ol;
20200 break;
20201
20202 case ENUM_CAN_RX_T_RX_CAN_3:
20203 L4_MABX_B.RX_time_ad = L4_MABX_B.RX_time_ol;
20204 break;
20205
20206 case ENUM_CAN_RX_T_RX_CAN_4:
20207 L4_MABX_B.RX_time_ad = L4_MABX_B.RX_time_ol;
20208 break;
20209
20210 case ENUM_CAN_RX_T_RX_CAN_5:
20211 L4_MABX_B.RX_time_ad = L4_MABX_B.RX_time_ol;
20212 break;
20213
20214 case ENUM_CAN_RX_T_RX_CAN_6:
20215 L4_MABX_B.RX_time_ad = L4_MABX_B.RX_time_ol;
20216 break;
20217
20218 default:
20219 L4_MABX_B.RX_time_ad = L4_MABX_B.RX_time_ol;
20220 break;
20221 }
20222
20223 /* DataTypeConversion: '<S569>/Data Type Conversion10' */
20224 L4_MABX_B.RX_delta_time_ll = L4_MABX_B.SFunction1_o11_a;
20225
20226 /* MultiPortSwitch: '<S430>/Multiport_Switch' incorporates:
20227 * Constant: '<S430>/Constant'
20228 */
20229 switch (CANR_PROPB_REAX_3_13_CHANNEL_APV) {
20230 case ENUM_CAN_RX_T_RX_CAN_1:
20231 /* DataTypeConversion: '<S568>/Data Type Conversion10' */
20232 L4_MABX_B.RX_delta_time_gq = L4_MABX_B.SFunction1_o11_f;
20233 L4_MABX_B.RX_delta_time_kx = L4_MABX_B.RX_delta_time_gq;
20234 break;
20235
20236 case ENUM_CAN_RX_T_RX_CAN_2:
20237 L4_MABX_B.RX_delta_time_kx = L4_MABX_B.RX_delta_time_ll;
20238 break;
20239
20240 case ENUM_CAN_RX_T_RX_CAN_3:
20241 L4_MABX_B.RX_delta_time_kx = L4_MABX_B.RX_delta_time_ll;
20242 break;
20243
20244 case ENUM_CAN_RX_T_RX_CAN_4:
20245 L4_MABX_B.RX_delta_time_kx = L4_MABX_B.RX_delta_time_ll;
20246 break;
20247
20248 case ENUM_CAN_RX_T_RX_CAN_5:
20249 L4_MABX_B.RX_delta_time_kx = L4_MABX_B.RX_delta_time_ll;
20250 break;
20251
20252 case ENUM_CAN_RX_T_RX_CAN_6:
20253 L4_MABX_B.RX_delta_time_kx = L4_MABX_B.RX_delta_time_ll;
20254 break;
20255
20256 default:
20257 L4_MABX_B.RX_delta_time_kx = L4_MABX_B.RX_delta_time_ll;
20258 break;
20259 }
20260
20261 /* RelationalOperator: '<S575>/Operator' incorporates:
20262 * Constant: '<S430>/Constant'
20263 * Constant: '<S570>/Constant2'
20264 */
20265 L4_MABX_B.Operator_pp = (CANR_PROPB_REAX_3_13_CHANNEL_APV ==
20266 L4_MABX_P.Constant2_Value_f);
20267
20268 /* RelationalOperator: '<S576>/Operator' incorporates:
20269 * Constant: '<S430>/Constant'
20270 * Constant: '<S570>/Constant3'
20271 */
20272 L4_MABX_B.Operator_kzd = (CANR_PROPB_REAX_3_13_CHANNEL_APV ==
20273 L4_MABX_P.Constant3_Value_m);
20274
20275 /* RelationalOperator: '<S577>/Operator' incorporates:
20276 * Constant: '<S430>/Constant'
20277 * Constant: '<S570>/Constant4'
20278 */
20279 L4_MABX_B.Operator_gp = (CANR_PROPB_REAX_3_13_CHANNEL_APV ==
20280 L4_MABX_P.Constant4_Value_ja);
20281
20282 /* RelationalOperator: '<S578>/Operator' incorporates:
20283 * Constant: '<S430>/Constant'
20284 * Constant: '<S570>/Constant5'
20285 */
20286 L4_MABX_B.Operator_gpg = (CANR_PROPB_REAX_3_13_CHANNEL_APV ==
20287 L4_MABX_P.Constant5_Value_i);
20288
20289 /* RelationalOperator: '<S584>/Operator' incorporates:
20290 * Constant: '<S431>/Constant'
20291 * Constant: '<S581>/Constant'
20292 */
20293 L4_MABX_B.Operator_g5 = (CANR_PROPB_REAX_4_13_CHANNEL_APV ==
20294 L4_MABX_P.Constant_Value_jv);
20295
20296 /* Outputs for Enabled SubSystem: '<S579>/CAN_TYPE1_RX_M1_C1' incorporates:
20297 * EnablePort: '<S582>/Enable'
20298 */
20299 if (L4_MABX_B.Operator_g5) {
20300 /* S-Function (rti_commonblock): '<S582>/S-Function1' */
20301 /* This comment workarounds a code generation problem */
20302
20303 /* dSPACE RTICAN RX Message Block: "PropB_REAX_4_13" Id:419428115 */
20304 {
20305 UInt32 *CAN_Msg;
20306 static dsfloat time_old = 0.0;
20307
20308 /* Read status and timestamp info (previous message) */
20309 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF713].timestamp !=
20310 time_old) {
20311 /* ... save timestamp info for the calculation of the RX status
20312 during the consecutive sample hit*/
20313 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF713].
20314 timestamp;
20315
20316 /* ... set the processed flag to one */
20317 L4_MABX_B.SFunction1_o9_o = 1.0;
20318 L4_MABX_B.SFunction1_o10_m = (real_T)
20319 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF713].timestamp;
20320 L4_MABX_B.SFunction1_o11_k = (real_T)
20321 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF713].deltatime;
20322 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF713].data;
20323
20324 /* Decode CAN message */
20325 {
20326 {
20327 rtican_Signal_t CAN_Sgn;
20328
20329 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
20330 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
20331 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20332 L4_MABX_B.SFunction1_o1_m0 = ((real_T) CAN_Sgn.UnsignedSgn);
20333
20334 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
20335 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
20336 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20337 L4_MABX_B.SFunction1_o2_bp = ((real_T) CAN_Sgn.UnsignedSgn);
20338
20339 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
20340 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
20341 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20342 L4_MABX_B.SFunction1_o3_kx = ((real_T) CAN_Sgn.UnsignedSgn);
20343
20344 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
20345 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
20346 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20347 L4_MABX_B.SFunction1_o4_lc = ((real_T) CAN_Sgn.UnsignedSgn);
20348
20349 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
20350 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
20351 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20352 L4_MABX_B.SFunction1_o5_oi = ((real_T) CAN_Sgn.UnsignedSgn);
20353
20354 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
20355 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
20356 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20357 L4_MABX_B.SFunction1_o6_f2 = ((real_T) CAN_Sgn.UnsignedSgn);
20358
20359 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
20360 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
20361 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20362 L4_MABX_B.SFunction1_o7_dv = ((real_T) CAN_Sgn.UnsignedSgn);
20363
20364 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
20365 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
20366 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20367 L4_MABX_B.SFunction1_o8_k = ((real_T) CAN_Sgn.UnsignedSgn);
20368 }
20369 }
20370 } else {
20371 /* set RX status to 0 because no new message has arrived */
20372 L4_MABX_B.SFunction1_o9_o = 0.0;
20373 }
20374 }
20375 }
20376
20377 /* End of Outputs for SubSystem: '<S579>/CAN_TYPE1_RX_M1_C1' */
20378
20379 /* RelationalOperator: '<S585>/Operator' incorporates:
20380 * Constant: '<S431>/Constant'
20381 * Constant: '<S581>/Constant1'
20382 */
20383 L4_MABX_B.Operator_ijc = (CANR_PROPB_REAX_4_13_CHANNEL_APV ==
20384 L4_MABX_P.Constant1_Value_iyd);
20385
20386 /* Outputs for Enabled SubSystem: '<S580>/CAN_TYPE1_RX_M1_C2' incorporates:
20387 * EnablePort: '<S583>/Enable'
20388 */
20389 if (L4_MABX_B.Operator_ijc) {
20390 /* S-Function (rti_commonblock): '<S583>/S-Function1' */
20391 /* This comment workarounds a code generation problem */
20392
20393 /* dSPACE RTICAN RX Message Block: "PropB_REAX_4_13" Id:419428115 */
20394 {
20395 UInt32 *CAN_Msg;
20396 static dsfloat time_old = 0.0;
20397
20398 /* Read status and timestamp info (previous message) */
20399 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF713].timestamp !=
20400 time_old) {
20401 /* ... save timestamp info for the calculation of the RX status
20402 during the consecutive sample hit*/
20403 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF713].
20404 timestamp;
20405
20406 /* ... set the processed flag to one */
20407 L4_MABX_B.SFunction1_o9_bu = 1.0;
20408 L4_MABX_B.SFunction1_o10_e = (real_T)
20409 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF713].timestamp;
20410 L4_MABX_B.SFunction1_o11_n = (real_T)
20411 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF713].deltatime;
20412 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF713].data;
20413
20414 /* Decode CAN message */
20415 {
20416 {
20417 rtican_Signal_t CAN_Sgn;
20418
20419 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
20420 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
20421 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20422 L4_MABX_B.SFunction1_o1_p3 = ((real_T) CAN_Sgn.UnsignedSgn);
20423
20424 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
20425 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
20426 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20427 L4_MABX_B.SFunction1_o2_b1 = ((real_T) CAN_Sgn.UnsignedSgn);
20428
20429 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
20430 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
20431 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20432 L4_MABX_B.SFunction1_o3_eu = ((real_T) CAN_Sgn.UnsignedSgn);
20433
20434 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
20435 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
20436 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20437 L4_MABX_B.SFunction1_o4_dw = ((real_T) CAN_Sgn.UnsignedSgn);
20438
20439 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
20440 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
20441 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20442 L4_MABX_B.SFunction1_o5_hz = ((real_T) CAN_Sgn.UnsignedSgn);
20443
20444 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
20445 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
20446 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20447 L4_MABX_B.SFunction1_o6_o = ((real_T) CAN_Sgn.UnsignedSgn);
20448
20449 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
20450 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
20451 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20452 L4_MABX_B.SFunction1_o7_h = ((real_T) CAN_Sgn.UnsignedSgn);
20453
20454 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
20455 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
20456 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20457 L4_MABX_B.SFunction1_o8_m = ((real_T) CAN_Sgn.UnsignedSgn);
20458 }
20459 }
20460 } else {
20461 /* set RX status to 0 because no new message has arrived */
20462 L4_MABX_B.SFunction1_o9_bu = 0.0;
20463 }
20464 }
20465 }
20466
20467 /* End of Outputs for SubSystem: '<S580>/CAN_TYPE1_RX_M1_C2' */
20468
20469 /* DataTypeConversion: '<S580>/Data Type Conversion' */
20470 PositionFinalLimited = L4_MABX_B.SFunction1_o1_p3;
20471 if (PositionFinalLimited < 256.0) {
20472 if (PositionFinalLimited >= 0.0) {
20473 starting_index = (uint8_T)PositionFinalLimited;
20474 } else {
20475 starting_index = 0U;
20476 }
20477 } else {
20478 starting_index = MAX_uint8_T;
20479 }
20480
20481 L4_MABX_B.DataTypeConversion_gn = starting_index;
20482
20483 /* End of DataTypeConversion: '<S580>/Data Type Conversion' */
20484
20485 /* DataTypeConversion: '<S580>/Data Type Conversion1' */
20486 PositionFinalLimited = L4_MABX_B.SFunction1_o2_b1;
20487 if (PositionFinalLimited < 256.0) {
20488 if (PositionFinalLimited >= 0.0) {
20489 starting_index = (uint8_T)PositionFinalLimited;
20490 } else {
20491 starting_index = 0U;
20492 }
20493 } else {
20494 starting_index = MAX_uint8_T;
20495 }
20496
20497 L4_MABX_B.DataTypeConversion1_p0 = starting_index;
20498
20499 /* End of DataTypeConversion: '<S580>/Data Type Conversion1' */
20500
20501 /* DataTypeConversion: '<S580>/Data Type Conversion2' */
20502 PositionFinalLimited = L4_MABX_B.SFunction1_o3_eu;
20503 if (PositionFinalLimited < 256.0) {
20504 if (PositionFinalLimited >= 0.0) {
20505 starting_index = (uint8_T)PositionFinalLimited;
20506 } else {
20507 starting_index = 0U;
20508 }
20509 } else {
20510 starting_index = MAX_uint8_T;
20511 }
20512
20513 L4_MABX_B.DataTypeConversion2_e1 = starting_index;
20514
20515 /* End of DataTypeConversion: '<S580>/Data Type Conversion2' */
20516
20517 /* DataTypeConversion: '<S580>/Data Type Conversion3' */
20518 PositionFinalLimited = L4_MABX_B.SFunction1_o4_dw;
20519 if (PositionFinalLimited < 256.0) {
20520 if (PositionFinalLimited >= 0.0) {
20521 starting_index = (uint8_T)PositionFinalLimited;
20522 } else {
20523 starting_index = 0U;
20524 }
20525 } else {
20526 starting_index = MAX_uint8_T;
20527 }
20528
20529 L4_MABX_B.DataTypeConversion3_l3 = starting_index;
20530
20531 /* End of DataTypeConversion: '<S580>/Data Type Conversion3' */
20532
20533 /* DataTypeConversion: '<S580>/Data Type Conversion4' */
20534 PositionFinalLimited = L4_MABX_B.SFunction1_o5_hz;
20535 if (PositionFinalLimited < 256.0) {
20536 if (PositionFinalLimited >= 0.0) {
20537 starting_index = (uint8_T)PositionFinalLimited;
20538 } else {
20539 starting_index = 0U;
20540 }
20541 } else {
20542 starting_index = MAX_uint8_T;
20543 }
20544
20545 L4_MABX_B.DataTypeConversion4_op = starting_index;
20546
20547 /* End of DataTypeConversion: '<S580>/Data Type Conversion4' */
20548
20549 /* DataTypeConversion: '<S580>/Data Type Conversion5' */
20550 PositionFinalLimited = L4_MABX_B.SFunction1_o6_o;
20551 if (PositionFinalLimited < 256.0) {
20552 if (PositionFinalLimited >= 0.0) {
20553 starting_index = (uint8_T)PositionFinalLimited;
20554 } else {
20555 starting_index = 0U;
20556 }
20557 } else {
20558 starting_index = MAX_uint8_T;
20559 }
20560
20561 L4_MABX_B.DataTypeConversion5_n = starting_index;
20562
20563 /* End of DataTypeConversion: '<S580>/Data Type Conversion5' */
20564
20565 /* DataTypeConversion: '<S580>/Data Type Conversion6' */
20566 PositionFinalLimited = L4_MABX_B.SFunction1_o7_h;
20567 if (PositionFinalLimited < 256.0) {
20568 if (PositionFinalLimited >= 0.0) {
20569 starting_index = (uint8_T)PositionFinalLimited;
20570 } else {
20571 starting_index = 0U;
20572 }
20573 } else {
20574 starting_index = MAX_uint8_T;
20575 }
20576
20577 L4_MABX_B.DataTypeConversion6_ja = starting_index;
20578
20579 /* End of DataTypeConversion: '<S580>/Data Type Conversion6' */
20580
20581 /* DataTypeConversion: '<S580>/Data Type Conversion7' */
20582 PositionFinalLimited = L4_MABX_B.SFunction1_o8_m;
20583 if (PositionFinalLimited < 256.0) {
20584 if (PositionFinalLimited >= 0.0) {
20585 starting_index = (uint8_T)PositionFinalLimited;
20586 } else {
20587 starting_index = 0U;
20588 }
20589 } else {
20590 starting_index = MAX_uint8_T;
20591 }
20592
20593 L4_MABX_B.DataTypeConversion7_h0 = starting_index;
20594
20595 /* End of DataTypeConversion: '<S580>/Data Type Conversion7' */
20596
20597 /* MultiPortSwitch: '<S431>/Multiport_Switch' incorporates:
20598 * Constant: '<S431>/Constant'
20599 */
20600 switch (CANR_PROPB_REAX_4_13_CHANNEL_APV) {
20601 case ENUM_CAN_RX_T_RX_CAN_1:
20602 /* DataTypeConversion: '<S579>/Data Type Conversion' */
20603 PositionFinalLimited = L4_MABX_B.SFunction1_o1_m0;
20604 if (PositionFinalLimited < 256.0) {
20605 if (PositionFinalLimited >= 0.0) {
20606 starting_index = (uint8_T)PositionFinalLimited;
20607 } else {
20608 starting_index = 0U;
20609 }
20610 } else {
20611 starting_index = MAX_uint8_T;
20612 }
20613
20614 L4_MABX_B.DataTypeConversion_ic = starting_index;
20615
20616 /* End of DataTypeConversion: '<S579>/Data Type Conversion' */
20617
20618 /* DataTypeConversion: '<S579>/Data Type Conversion1' */
20619 PositionFinalLimited = L4_MABX_B.SFunction1_o2_bp;
20620 if (PositionFinalLimited < 256.0) {
20621 if (PositionFinalLimited >= 0.0) {
20622 starting_index = (uint8_T)PositionFinalLimited;
20623 } else {
20624 starting_index = 0U;
20625 }
20626 } else {
20627 starting_index = MAX_uint8_T;
20628 }
20629
20630 L4_MABX_B.DataTypeConversion1_bv = starting_index;
20631
20632 /* End of DataTypeConversion: '<S579>/Data Type Conversion1' */
20633
20634 /* DataTypeConversion: '<S579>/Data Type Conversion2' */
20635 PositionFinalLimited = L4_MABX_B.SFunction1_o3_kx;
20636 if (PositionFinalLimited < 256.0) {
20637 if (PositionFinalLimited >= 0.0) {
20638 starting_index = (uint8_T)PositionFinalLimited;
20639 } else {
20640 starting_index = 0U;
20641 }
20642 } else {
20643 starting_index = MAX_uint8_T;
20644 }
20645
20646 L4_MABX_B.DataTypeConversion2_kr = starting_index;
20647
20648 /* End of DataTypeConversion: '<S579>/Data Type Conversion2' */
20649
20650 /* DataTypeConversion: '<S579>/Data Type Conversion3' */
20651 PositionFinalLimited = L4_MABX_B.SFunction1_o4_lc;
20652 if (PositionFinalLimited < 256.0) {
20653 if (PositionFinalLimited >= 0.0) {
20654 starting_index = (uint8_T)PositionFinalLimited;
20655 } else {
20656 starting_index = 0U;
20657 }
20658 } else {
20659 starting_index = MAX_uint8_T;
20660 }
20661
20662 L4_MABX_B.DataTypeConversion3_o0g = starting_index;
20663
20664 /* End of DataTypeConversion: '<S579>/Data Type Conversion3' */
20665
20666 /* DataTypeConversion: '<S579>/Data Type Conversion4' */
20667 PositionFinalLimited = L4_MABX_B.SFunction1_o5_oi;
20668 if (PositionFinalLimited < 256.0) {
20669 if (PositionFinalLimited >= 0.0) {
20670 starting_index = (uint8_T)PositionFinalLimited;
20671 } else {
20672 starting_index = 0U;
20673 }
20674 } else {
20675 starting_index = MAX_uint8_T;
20676 }
20677
20678 L4_MABX_B.DataTypeConversion4_b4 = starting_index;
20679
20680 /* End of DataTypeConversion: '<S579>/Data Type Conversion4' */
20681
20682 /* DataTypeConversion: '<S579>/Data Type Conversion5' */
20683 PositionFinalLimited = L4_MABX_B.SFunction1_o6_f2;
20684 if (PositionFinalLimited < 256.0) {
20685 if (PositionFinalLimited >= 0.0) {
20686 starting_index = (uint8_T)PositionFinalLimited;
20687 } else {
20688 starting_index = 0U;
20689 }
20690 } else {
20691 starting_index = MAX_uint8_T;
20692 }
20693
20694 L4_MABX_B.DataTypeConversion5_e2 = starting_index;
20695
20696 /* End of DataTypeConversion: '<S579>/Data Type Conversion5' */
20697
20698 /* DataTypeConversion: '<S579>/Data Type Conversion6' */
20699 PositionFinalLimited = L4_MABX_B.SFunction1_o7_dv;
20700 if (PositionFinalLimited < 256.0) {
20701 if (PositionFinalLimited >= 0.0) {
20702 starting_index = (uint8_T)PositionFinalLimited;
20703 } else {
20704 starting_index = 0U;
20705 }
20706 } else {
20707 starting_index = MAX_uint8_T;
20708 }
20709
20710 L4_MABX_B.DataTypeConversion6_b = starting_index;
20711
20712 /* End of DataTypeConversion: '<S579>/Data Type Conversion6' */
20713
20714 /* DataTypeConversion: '<S579>/Data Type Conversion7' */
20715 PositionFinalLimited = L4_MABX_B.SFunction1_o8_k;
20716 if (PositionFinalLimited < 256.0) {
20717 if (PositionFinalLimited >= 0.0) {
20718 starting_index = (uint8_T)PositionFinalLimited;
20719 } else {
20720 starting_index = 0U;
20721 }
20722 } else {
20723 starting_index = MAX_uint8_T;
20724 }
20725
20726 L4_MABX_B.DataTypeConversion7_mv = starting_index;
20727
20728 /* End of DataTypeConversion: '<S579>/Data Type Conversion7' */
20729 L4_MABX_B.RawData_h[0] = L4_MABX_B.DataTypeConversion_ic;
20730 L4_MABX_B.RawData_h[1] = L4_MABX_B.DataTypeConversion1_bv;
20731 L4_MABX_B.RawData_h[2] = L4_MABX_B.DataTypeConversion2_kr;
20732 L4_MABX_B.RawData_h[3] = L4_MABX_B.DataTypeConversion3_o0g;
20733 L4_MABX_B.RawData_h[4] = L4_MABX_B.DataTypeConversion4_b4;
20734 L4_MABX_B.RawData_h[5] = L4_MABX_B.DataTypeConversion5_e2;
20735 L4_MABX_B.RawData_h[6] = L4_MABX_B.DataTypeConversion6_b;
20736 L4_MABX_B.RawData_h[7] = L4_MABX_B.DataTypeConversion7_mv;
20737 break;
20738
20739 case ENUM_CAN_RX_T_RX_CAN_2:
20740 L4_MABX_B.RawData_h[0] = L4_MABX_B.DataTypeConversion_gn;
20741 L4_MABX_B.RawData_h[1] = L4_MABX_B.DataTypeConversion1_p0;
20742 L4_MABX_B.RawData_h[2] = L4_MABX_B.DataTypeConversion2_e1;
20743 L4_MABX_B.RawData_h[3] = L4_MABX_B.DataTypeConversion3_l3;
20744 L4_MABX_B.RawData_h[4] = L4_MABX_B.DataTypeConversion4_op;
20745 L4_MABX_B.RawData_h[5] = L4_MABX_B.DataTypeConversion5_n;
20746 L4_MABX_B.RawData_h[6] = L4_MABX_B.DataTypeConversion6_ja;
20747 L4_MABX_B.RawData_h[7] = L4_MABX_B.DataTypeConversion7_h0;
20748 break;
20749
20750 case ENUM_CAN_RX_T_RX_CAN_3:
20751 L4_MABX_B.RawData_h[0] = L4_MABX_B.DataTypeConversion_gn;
20752 L4_MABX_B.RawData_h[1] = L4_MABX_B.DataTypeConversion1_p0;
20753 L4_MABX_B.RawData_h[2] = L4_MABX_B.DataTypeConversion2_e1;
20754 L4_MABX_B.RawData_h[3] = L4_MABX_B.DataTypeConversion3_l3;
20755 L4_MABX_B.RawData_h[4] = L4_MABX_B.DataTypeConversion4_op;
20756 L4_MABX_B.RawData_h[5] = L4_MABX_B.DataTypeConversion5_n;
20757 L4_MABX_B.RawData_h[6] = L4_MABX_B.DataTypeConversion6_ja;
20758 L4_MABX_B.RawData_h[7] = L4_MABX_B.DataTypeConversion7_h0;
20759 break;
20760
20761 case ENUM_CAN_RX_T_RX_CAN_4:
20762 L4_MABX_B.RawData_h[0] = L4_MABX_B.DataTypeConversion_gn;
20763 L4_MABX_B.RawData_h[1] = L4_MABX_B.DataTypeConversion1_p0;
20764 L4_MABX_B.RawData_h[2] = L4_MABX_B.DataTypeConversion2_e1;
20765 L4_MABX_B.RawData_h[3] = L4_MABX_B.DataTypeConversion3_l3;
20766 L4_MABX_B.RawData_h[4] = L4_MABX_B.DataTypeConversion4_op;
20767 L4_MABX_B.RawData_h[5] = L4_MABX_B.DataTypeConversion5_n;
20768 L4_MABX_B.RawData_h[6] = L4_MABX_B.DataTypeConversion6_ja;
20769 L4_MABX_B.RawData_h[7] = L4_MABX_B.DataTypeConversion7_h0;
20770 break;
20771
20772 case ENUM_CAN_RX_T_RX_CAN_5:
20773 L4_MABX_B.RawData_h[0] = L4_MABX_B.DataTypeConversion_gn;
20774 L4_MABX_B.RawData_h[1] = L4_MABX_B.DataTypeConversion1_p0;
20775 L4_MABX_B.RawData_h[2] = L4_MABX_B.DataTypeConversion2_e1;
20776 L4_MABX_B.RawData_h[3] = L4_MABX_B.DataTypeConversion3_l3;
20777 L4_MABX_B.RawData_h[4] = L4_MABX_B.DataTypeConversion4_op;
20778 L4_MABX_B.RawData_h[5] = L4_MABX_B.DataTypeConversion5_n;
20779 L4_MABX_B.RawData_h[6] = L4_MABX_B.DataTypeConversion6_ja;
20780 L4_MABX_B.RawData_h[7] = L4_MABX_B.DataTypeConversion7_h0;
20781 break;
20782
20783 case ENUM_CAN_RX_T_RX_CAN_6:
20784 L4_MABX_B.RawData_h[0] = L4_MABX_B.DataTypeConversion_gn;
20785 L4_MABX_B.RawData_h[1] = L4_MABX_B.DataTypeConversion1_p0;
20786 L4_MABX_B.RawData_h[2] = L4_MABX_B.DataTypeConversion2_e1;
20787 L4_MABX_B.RawData_h[3] = L4_MABX_B.DataTypeConversion3_l3;
20788 L4_MABX_B.RawData_h[4] = L4_MABX_B.DataTypeConversion4_op;
20789 L4_MABX_B.RawData_h[5] = L4_MABX_B.DataTypeConversion5_n;
20790 L4_MABX_B.RawData_h[6] = L4_MABX_B.DataTypeConversion6_ja;
20791 L4_MABX_B.RawData_h[7] = L4_MABX_B.DataTypeConversion7_h0;
20792 break;
20793
20794 default:
20795 L4_MABX_B.RawData_h[0] = L4_MABX_B.DataTypeConversion_gn;
20796 L4_MABX_B.RawData_h[1] = L4_MABX_B.DataTypeConversion1_p0;
20797 L4_MABX_B.RawData_h[2] = L4_MABX_B.DataTypeConversion2_e1;
20798 L4_MABX_B.RawData_h[3] = L4_MABX_B.DataTypeConversion3_l3;
20799 L4_MABX_B.RawData_h[4] = L4_MABX_B.DataTypeConversion4_op;
20800 L4_MABX_B.RawData_h[5] = L4_MABX_B.DataTypeConversion5_n;
20801 L4_MABX_B.RawData_h[6] = L4_MABX_B.DataTypeConversion6_ja;
20802 L4_MABX_B.RawData_h[7] = L4_MABX_B.DataTypeConversion7_h0;
20803 break;
20804 }
20805
20806 /* S-Function (sfix_bitop): '<S659>/Operator' */
20807 L4_MABX_B.Operator_em = (uint8_T)(L4_MABX_B.RawData_h[0] &
20808 L4_MABX_P.Operator_BitMask_nn);
20809
20810 /* DataTypeConversion: '<S659>/DataType' */
20811 L4_MABX_B.DataType_jg = L4_MABX_B.Operator_em;
20812
20813 /* ArithShift: '<S652>/Shift_Arithmetic ' */
20814 L4_MABX_B.Shift_Arithmetic_p5 = (uint8_T)((uint32_T)L4_MABX_B.DataType_jg >> 1);
20815
20816 /* DataTypeConversion: '<S652>/Data Type Conversion' */
20817 L4_MABX_B.PropB_REAX_4_PositionIndexValid = (L4_MABX_B.Shift_Arithmetic_p5 !=
20818 0);
20819
20820 /* DataTypeConversion: '<S406>/Data Type Conversion' */
20821 L4_MABX_B.DataTypeConversion_kh = L4_MABX_B.PropB_REAX_4_PositionIndexValid;
20822
20823 /* S-Function (sfix_bitop): '<S658>/Operator' */
20824 L4_MABX_B.Operator_k4 = (uint8_T)(L4_MABX_B.RawData_h[0] &
20825 L4_MABX_P.Operator_BitMask_h0);
20826
20827 /* DataTypeConversion: '<S658>/DataType' */
20828 L4_MABX_B.DataType_nx = (L4_MABX_B.Operator_k4 != 0);
20829
20830 /* DataTypeConversion: '<S406>/Data Type Conversion1' */
20831 L4_MABX_B.DataTypeConversion1_jc = L4_MABX_B.DataType_nx;
20832
20833 /* S-Function (sfix_bitop): '<S660>/Operator' */
20834 L4_MABX_B.Operator_en = (uint8_T)(L4_MABX_B.RawData_h[0] &
20835 L4_MABX_P.Operator_BitMask_f2);
20836
20837 /* DataTypeConversion: '<S660>/DataType' */
20838 L4_MABX_B.DataType_lo = L4_MABX_B.Operator_en;
20839
20840 /* ArithShift: '<S652>/Shift_Arithmetic 1' */
20841 L4_MABX_B.Shift_Arithmetic1_ga = (uint8_T)((uint32_T)L4_MABX_B.DataType_lo >>
20842 2);
20843
20844 /* DataTypeConversion: '<S652>/Data Type Conversion1' */
20845 L4_MABX_B.PropB_REAX_4_DriverControlledEf = (L4_MABX_B.Shift_Arithmetic1_ga !=
20846 0);
20847
20848 /* DataTypeConversion: '<S406>/Data Type Conversion2' */
20849 L4_MABX_B.DataTypeConversion2_j1 = L4_MABX_B.PropB_REAX_4_DriverControlledEf;
20850
20851 /* SignalConversion: '<S653>/SignalConversion' */
20852 L4_MABX_B.PropB_REAX_4_ControlOperatingMo = L4_MABX_B.RawData_h[1];
20853
20854 /* DataTypeConversion: '<S406>/Data Type Conversion3' */
20855 L4_MABX_B.DataTypeConversion3_f = L4_MABX_B.PropB_REAX_4_ControlOperatingMo;
20856
20857 /* SignalConversion: '<S654>/SignalConversion' */
20858 L4_MABX_B.PropB_REAX_4_SystemMode = L4_MABX_B.RawData_h[2];
20859
20860 /* DataTypeConversion: '<S406>/Data Type Conversion4' */
20861 L4_MABX_B.DataTypeConversion4_j = L4_MABX_B.PropB_REAX_4_SystemMode;
20862
20863 /* DataTypeConversion: '<S655>/Data Type Conversion4' */
20864 L4_MABX_B.DataTypeConversion4_e = (int8_T)L4_MABX_B.RawData_h[4];
20865
20866 /* DataTypeConversion: '<S655>/Data Type Conversion5' */
20867 L4_MABX_B.PropB_REAX_4_PercHandwheelTorqu = L4_MABX_B.DataTypeConversion4_e;
20868
20869 /* DataTypeConversion: '<S406>/Data Type Conversion5' */
20870 L4_MABX_B.DataTypeConversion5_j = L4_MABX_B.PropB_REAX_4_PercHandwheelTorqu;
20871
20872 /* DataTypeConversion: '<S656>/Data Type Conversion6' */
20873 L4_MABX_B.DataTypeConversion6_j = L4_MABX_B.RawData_h[5];
20874
20875 /* DataTypeConversion: '<S656>/Data Type Conversion7' */
20876 L4_MABX_B.DataTypeConversion7_m = L4_MABX_B.RawData_h[6];
20877
20878 /* ArithShift: '<S656>/Shift_Arithmetic 2' */
20879 L4_MABX_B.Shift_Arithmetic2_nt = (uint16_T)(L4_MABX_B.DataTypeConversion7_m <<
20880 8);
20881
20882 /* S-Function (sfix_bitop): '<S661>/Operator' */
20883 L4_MABX_B.Operator_ae = (uint16_T)(L4_MABX_B.DataTypeConversion6_j |
20884 L4_MABX_B.Shift_Arithmetic2_nt);
20885
20886 /* DataTypeConversion: '<S661>/DataType' */
20887 L4_MABX_B.DataType_owd = L4_MABX_B.Operator_ae;
20888
20889 /* DataTypeConversion: '<S656>/Data Type Conversion8' */
20890 L4_MABX_B.DataTypeConversion8_p = (int16_T)L4_MABX_B.DataType_owd;
20891
20892 /* DataTypeConversion: '<S656>/Data Type Conversion9' */
20893 L4_MABX_B.PropB_REAX_4_AbsSteeringAngle = L4_MABX_B.DataTypeConversion8_p;
20894
20895 /* DataTypeConversion: '<S406>/Data Type Conversion6' */
20896 L4_MABX_B.DataTypeConversion6_i = L4_MABX_B.PropB_REAX_4_AbsSteeringAngle;
20897
20898 /* DataTypeConversion: '<S657>/Data Type Conversion10' */
20899 L4_MABX_B.DataTypeConversion10_c = (int8_T)L4_MABX_B.RawData_h[7];
20900
20901 /* DataTypeConversion: '<S657>/Data Type Conversion11' */
20902 L4_MABX_B.PropB_REAX_4_PercMotorTorque = L4_MABX_B.DataTypeConversion10_c;
20903
20904 /* DataTypeConversion: '<S406>/Data Type Conversion7' */
20905 L4_MABX_B.DataTypeConversion7_d = L4_MABX_B.PropB_REAX_4_PercMotorTorque;
20906
20907 /* DataTypeConversion: '<S580>/Data Type Conversion8' */
20908 L4_MABX_B.RX_status_mp = (L4_MABX_B.SFunction1_o9_bu != 0.0);
20909
20910 /* MultiPortSwitch: '<S431>/Multiport_Switch' incorporates:
20911 * Constant: '<S431>/Constant'
20912 */
20913 switch (CANR_PROPB_REAX_4_13_CHANNEL_APV) {
20914 case ENUM_CAN_RX_T_RX_CAN_1:
20915 /* DataTypeConversion: '<S579>/Data Type Conversion8' */
20916 L4_MABX_B.RX_status_ok = (L4_MABX_B.SFunction1_o9_o != 0.0);
20917 L4_MABX_B.RX_status_cx = L4_MABX_B.RX_status_ok;
20918 break;
20919
20920 case ENUM_CAN_RX_T_RX_CAN_2:
20921 L4_MABX_B.RX_status_cx = L4_MABX_B.RX_status_mp;
20922 break;
20923
20924 case ENUM_CAN_RX_T_RX_CAN_3:
20925 L4_MABX_B.RX_status_cx = L4_MABX_B.RX_status_mp;
20926 break;
20927
20928 case ENUM_CAN_RX_T_RX_CAN_4:
20929 L4_MABX_B.RX_status_cx = L4_MABX_B.RX_status_mp;
20930 break;
20931
20932 case ENUM_CAN_RX_T_RX_CAN_5:
20933 L4_MABX_B.RX_status_cx = L4_MABX_B.RX_status_mp;
20934 break;
20935
20936 case ENUM_CAN_RX_T_RX_CAN_6:
20937 L4_MABX_B.RX_status_cx = L4_MABX_B.RX_status_mp;
20938 break;
20939
20940 default:
20941 L4_MABX_B.RX_status_cx = L4_MABX_B.RX_status_mp;
20942 break;
20943 }
20944
20945 /* DataTypeConversion: '<S580>/Data Type Conversion9' */
20946 L4_MABX_B.RX_time_pt = L4_MABX_B.SFunction1_o10_e;
20947
20948 /* MultiPortSwitch: '<S431>/Multiport_Switch' incorporates:
20949 * Constant: '<S431>/Constant'
20950 */
20951 switch (CANR_PROPB_REAX_4_13_CHANNEL_APV) {
20952 case ENUM_CAN_RX_T_RX_CAN_1:
20953 /* DataTypeConversion: '<S579>/Data Type Conversion9' */
20954 L4_MABX_B.RX_time_nq = L4_MABX_B.SFunction1_o10_m;
20955 L4_MABX_B.RX_time_f5 = L4_MABX_B.RX_time_nq;
20956 break;
20957
20958 case ENUM_CAN_RX_T_RX_CAN_2:
20959 L4_MABX_B.RX_time_f5 = L4_MABX_B.RX_time_pt;
20960 break;
20961
20962 case ENUM_CAN_RX_T_RX_CAN_3:
20963 L4_MABX_B.RX_time_f5 = L4_MABX_B.RX_time_pt;
20964 break;
20965
20966 case ENUM_CAN_RX_T_RX_CAN_4:
20967 L4_MABX_B.RX_time_f5 = L4_MABX_B.RX_time_pt;
20968 break;
20969
20970 case ENUM_CAN_RX_T_RX_CAN_5:
20971 L4_MABX_B.RX_time_f5 = L4_MABX_B.RX_time_pt;
20972 break;
20973
20974 case ENUM_CAN_RX_T_RX_CAN_6:
20975 L4_MABX_B.RX_time_f5 = L4_MABX_B.RX_time_pt;
20976 break;
20977
20978 default:
20979 L4_MABX_B.RX_time_f5 = L4_MABX_B.RX_time_pt;
20980 break;
20981 }
20982
20983 /* DataTypeConversion: '<S580>/Data Type Conversion10' */
20984 L4_MABX_B.RX_delta_time_f0 = L4_MABX_B.SFunction1_o11_n;
20985
20986 /* MultiPortSwitch: '<S431>/Multiport_Switch' incorporates:
20987 * Constant: '<S431>/Constant'
20988 */
20989 switch (CANR_PROPB_REAX_4_13_CHANNEL_APV) {
20990 case ENUM_CAN_RX_T_RX_CAN_1:
20991 /* DataTypeConversion: '<S579>/Data Type Conversion10' */
20992 L4_MABX_B.RX_delta_time_aj = L4_MABX_B.SFunction1_o11_k;
20993 L4_MABX_B.RX_delta_time_ok = L4_MABX_B.RX_delta_time_aj;
20994 break;
20995
20996 case ENUM_CAN_RX_T_RX_CAN_2:
20997 L4_MABX_B.RX_delta_time_ok = L4_MABX_B.RX_delta_time_f0;
20998 break;
20999
21000 case ENUM_CAN_RX_T_RX_CAN_3:
21001 L4_MABX_B.RX_delta_time_ok = L4_MABX_B.RX_delta_time_f0;
21002 break;
21003
21004 case ENUM_CAN_RX_T_RX_CAN_4:
21005 L4_MABX_B.RX_delta_time_ok = L4_MABX_B.RX_delta_time_f0;
21006 break;
21007
21008 case ENUM_CAN_RX_T_RX_CAN_5:
21009 L4_MABX_B.RX_delta_time_ok = L4_MABX_B.RX_delta_time_f0;
21010 break;
21011
21012 case ENUM_CAN_RX_T_RX_CAN_6:
21013 L4_MABX_B.RX_delta_time_ok = L4_MABX_B.RX_delta_time_f0;
21014 break;
21015
21016 default:
21017 L4_MABX_B.RX_delta_time_ok = L4_MABX_B.RX_delta_time_f0;
21018 break;
21019 }
21020
21021 /* RelationalOperator: '<S586>/Operator' incorporates:
21022 * Constant: '<S431>/Constant'
21023 * Constant: '<S581>/Constant2'
21024 */
21025 L4_MABX_B.Operator_ay = (CANR_PROPB_REAX_4_13_CHANNEL_APV ==
21026 L4_MABX_P.Constant2_Value_bb);
21027
21028 /* RelationalOperator: '<S587>/Operator' incorporates:
21029 * Constant: '<S431>/Constant'
21030 * Constant: '<S581>/Constant3'
21031 */
21032 L4_MABX_B.Operator_mvi = (CANR_PROPB_REAX_4_13_CHANNEL_APV ==
21033 L4_MABX_P.Constant3_Value_h);
21034
21035 /* RelationalOperator: '<S588>/Operator' incorporates:
21036 * Constant: '<S431>/Constant'
21037 * Constant: '<S581>/Constant4'
21038 */
21039 L4_MABX_B.Operator_o3q = (CANR_PROPB_REAX_4_13_CHANNEL_APV ==
21040 L4_MABX_P.Constant4_Value_j5);
21041
21042 /* RelationalOperator: '<S589>/Operator' incorporates:
21043 * Constant: '<S431>/Constant'
21044 * Constant: '<S581>/Constant5'
21045 */
21046 L4_MABX_B.Operator_kf = (CANR_PROPB_REAX_4_13_CHANNEL_APV ==
21047 L4_MABX_P.Constant5_Value_o3);
21048
21049 /* S-Function (rti_commonblock): '<S446>/S-Function1' */
21050 /* This comment workarounds a code generation problem */
21051
21052 /* S-Function (rti_commonblock): '<S447>/S-Function1' */
21053 /* This comment workarounds a code generation problem */
21054
21055 /* S-Function (rti_commonblock): '<S448>/S-Function1' */
21056 /* This comment workarounds a code generation problem */
21057
21058 /* S-Function (rti_commonblock): '<S449>/S-Function1' */
21059 /* This comment workarounds a code generation problem */
21060
21061 /* S-Function (rti_commonblock): '<S450>/S-Function1' */
21062 /* This comment workarounds a code generation problem */
21063
21064 /* S-Function (rti_commonblock): '<S451>/S-Function1' */
21065 /* This comment workarounds a code generation problem */
21066
21067 /* S-Function (rti_commonblock): '<S710>/S-Function1' */
21068 /* This comment workarounds a code generation problem */
21069
21070 /* DataTypeConversion: '<S402>/StartPBActive' */
21071 L4_MABX_B.StartPBActive = L4_MABX_B.SFunction1_d3;
21072
21073 /* Logic: '<S402>/Logical Operator2' */
21074 EngagePB = !L4_MABX_B.StartPBActive;
21075
21076 /* Assertion: '<S738>/Assertion' */
21077 utAssert(L4_MABX_B.conjunction_m);
21078
21079 /* Assertion: '<S746>/Assertion' */
21080 utAssert(L4_MABX_B.conjunction);
21081
21082 /* Assertion: '<S754>/Assertion' */
21083 utAssert(L4_MABX_B.conjunction_g);
21084
21085 /* Assertion: '<S762>/Assertion' */
21086 utAssert(L4_MABX_B.conjunction_h);
21087
21088 /* Assertion: '<S770>/Assertion' */
21089 utAssert(L4_MABX_B.conjunction_l);
21090
21091 /* RelationalOperator: '<S737>/Relational Operator9' incorporates:
21092 * Constant: '<S718>/PWMSynchFaultLimMin'
21093 */
21094 L4_MABX_B.F_Fault_Soft_d = (L4_MABX_B.If_Then_Else_m.Switch !=
21095 L4_MABX_P.PWMSynchFaultLimMin_Value);
21096
21097 /* Gain: '<S402>/ShifterControlFreq' */
21098 L4_MABX_B.ShiftControlFreq = L4_MABX_P.ShifterControlFreq_Gain *
21099 L4_MABX_B.SFunction1_o1_f;
21100
21101 /* S-Function (rti_commonblock): '<S705>/S-Function1' */
21102 /* This comment workarounds a code generation problem */
21103 {
21104 /* dSPACE I/O Board DS1401STDADCT4 #1 Unit:ADC Group:ADC */
21105 adc_tp4_single_new_read(ADC_TP4_1_MODULE_ADDR,
21106 ADC_TP4_CH2,
21107 (dsfloat *)&L4_MABX_B.SFunction1_l);
21108 }
21109
21110 /* Gain: '<S402>/ShifterControlDC2' */
21111 L4_MABX_B.ShifterControlDC2 = L4_MABX_P.ShifterControlDC2_Gain *
21112 L4_MABX_B.SFunction1_l;
21113
21114 /* S-Function (rti_commonblock): '<S706>/S-Function1' */
21115 /* This comment workarounds a code generation problem */
21116 {
21117 /* dSPACE I/O Board DS1401STDADCT4 #1 Unit:ADC Group:ADC */
21118 adc_tp4_single_new_read(ADC_TP4_1_MODULE_ADDR,
21119 ADC_TP4_CH1,
21120 (dsfloat *)&L4_MABX_B.SFunction1_l5);
21121 }
21122
21123 /* Gain: '<S402>/ShifterControlDC1' */
21124 L4_MABX_B.ShifterControlDC1 = L4_MABX_P.ShifterControlDC1_Gain *
21125 L4_MABX_B.SFunction1_l5;
21126
21127 /* S-Function (rti_commonblock): '<S8>/S-Function1' */
21128 /* This comment workarounds a code generation problem */
21129
21130 /* S-Function (rti_commonblock): '<S9>/S-Function1' */
21131 /* This comment workarounds a code generation problem */
21132
21133 /* UnitDelay: '<S10>/Unit_Delay' */
21134 L4_MABX_B.Unit_Delay_jj = L4_MABX_DW.Unit_Delay_DSTATE_do;
21135
21136 /* Outputs for Enabled SubSystem: '<S10>/EnabledSubsystem' incorporates:
21137 * EnablePort: '<S1046>/Enable'
21138 */
21139 if (L4_MABX_B.Unit_Delay_jj) {
21140 /* Constant: '<S1046>/Constant' */
21141 memcpy(&GLB_SWVERSION_CPV_[0], &L4_MABX_P.GLB_SWVERSION_CPV[0], 100U *
21142 sizeof(uint8_T));
21143 }
21144
21145 /* End of Outputs for SubSystem: '<S10>/EnabledSubsystem' */
21146 /* user code (Output function Trailer for TID0) */
21147
21148 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
21149 /* EventChannel: 0 */
21150 if (tid == 0) {
21151 DSXCP_service(0);
21152 }
21153
21154 /* If subsystem generates rate grouping Output functions,
21155 * when tid is used in Output function for one rate,
21156 * all Output functions include tid as a local variable.
21157 * As result, some Output functions may have unused tid.
21158 */
21159 UNUSED_PARAMETER(tid);
21160}
21161
21162/* Model update function for TID0 */
21163void L4_MABX_update0(void) /* Sample time: [0.01s, 0.0s] */
21164{
21165 real_T denAccum;
21166 int32_T i;
21167
21168 /* Update for UnitDelay: '<S751>/FixPt Unit Delay2' incorporates:
21169 * Constant: '<S751>/FixPt Constant'
21170 */
21171 L4_MABX_DW.FixPtUnitDelay2_DSTATE = L4_MABX_P.FixPtConstant_Value_jxb;
21172
21173 /* Update for UnitDelay: '<S751>/FixPt Unit Delay1' */
21174 L4_MABX_DW.FixPtUnitDelay1_DSTATE = L4_MABX_B.If_Then_Else_c.Switch;
21175
21176 /* Update for UnitDelay: '<S743>/FixPt Unit Delay2' incorporates:
21177 * Constant: '<S743>/FixPt Constant'
21178 */
21179 L4_MABX_DW.FixPtUnitDelay2_DSTATE_h = L4_MABX_P.FixPtConstant_Value_pm;
21180
21181 /* Update for UnitDelay: '<S743>/FixPt Unit Delay1' */
21182 L4_MABX_DW.FixPtUnitDelay1_DSTATE_p = L4_MABX_B.If_Then_Else_p.Switch;
21183
21184 /* Update for UnitDelay: '<S767>/FixPt Unit Delay2' incorporates:
21185 * Constant: '<S767>/FixPt Constant'
21186 */
21187 L4_MABX_DW.FixPtUnitDelay2_DSTATE_g = L4_MABX_P.FixPtConstant_Value_h;
21188
21189 /* Update for UnitDelay: '<S767>/FixPt Unit Delay1' */
21190 L4_MABX_DW.FixPtUnitDelay1_DSTATE_n = L4_MABX_B.If_Then_Else_n.Switch;
21191
21192 /* Update for UnitDelay: '<S759>/FixPt Unit Delay2' incorporates:
21193 * Constant: '<S759>/FixPt Constant'
21194 */
21195 L4_MABX_DW.FixPtUnitDelay2_DSTATE_i = L4_MABX_P.FixPtConstant_Value_es;
21196
21197 /* Update for UnitDelay: '<S759>/FixPt Unit Delay1' */
21198 L4_MABX_DW.FixPtUnitDelay1_DSTATE_f = L4_MABX_B.If_Then_Else_b.Switch;
21199
21200 /* Update for UnitDelay: '<S721>/Unit_Delay' incorporates:
21201 * Constant: '<S721>/Constant'
21202 */
21203 L4_MABX_DW.Unit_Delay_DSTATE_d5 = L4_MABX_P.Constant_Value_dh;
21204
21205 /* Update for UnitDelay: '<S788>/Unit_Delay1' incorporates:
21206 * Constant: '<S788>/Constant'
21207 */
21208 L4_MABX_DW.Unit_Delay1_DSTATE = L4_MABX_P.Constant_Value_hgb;
21209
21210 /* Update for UnitDelay: '<S788>/Unit_Delay2' */
21211 L4_MABX_DW.Unit_Delay2_DSTATE = L4_MABX_B.If_Then_Else_iz.Switch;
21212
21213 /* Update for UnitDelay: '<S721>/Unit_Delay1' incorporates:
21214 * Constant: '<S721>/Constant1'
21215 */
21216 L4_MABX_DW.Unit_Delay1_DSTATE_c = L4_MABX_P.Constant1_Value_fgm;
21217
21218 /* Update for UnitDelay: '<S789>/Unit_Delay1' incorporates:
21219 * Constant: '<S789>/Constant'
21220 */
21221 L4_MABX_DW.Unit_Delay1_DSTATE_i = L4_MABX_P.Constant_Value_no;
21222
21223 /* Update for UnitDelay: '<S789>/Unit_Delay2' */
21224 L4_MABX_DW.Unit_Delay2_DSTATE_j = L4_MABX_B.If_Then_Else_p1.Switch;
21225
21226 /* Update for UnitDelay: '<S787>/FixPt Unit Delay2' incorporates:
21227 * Constant: '<S787>/FixPt Constant'
21228 */
21229 L4_MABX_DW.FixPtUnitDelay2_DSTATE_c = L4_MABX_P.FixPtConstant_Value_k1;
21230
21231 /* Update for UnitDelay: '<S787>/FixPt Unit Delay1' */
21232 L4_MABX_DW.FixPtUnitDelay1_DSTATE_b = L4_MABX_B.If_Then_Else3_f.Switch;
21233
21234 /* Update for UnitDelay: '<S786>/FixPt Unit Delay2' incorporates:
21235 * Constant: '<S786>/FixPt Constant'
21236 */
21237 L4_MABX_DW.FixPtUnitDelay2_DSTATE_e = L4_MABX_P.FixPtConstant_Value_gf;
21238
21239 /* Update for UnitDelay: '<S786>/FixPt Unit Delay1' */
21240 L4_MABX_DW.FixPtUnitDelay1_DSTATE_e = L4_MABX_B.If_Then_Else1_l.Switch;
21241
21242 /* Update for UnitDelay: '<S775>/FixPt Unit Delay2' incorporates:
21243 * Constant: '<S775>/FixPt Constant'
21244 */
21245 L4_MABX_DW.FixPtUnitDelay2_DSTATE_n = L4_MABX_P.FixPtConstant_Value_jh;
21246
21247 /* Update for UnitDelay: '<S775>/FixPt Unit Delay1' */
21248 L4_MABX_DW.FixPtUnitDelay1_DSTATE_k = L4_MABX_B.If_Then_Else_m.Switch;
21249
21250 /* Update for Enabled SubSystem: '<S715>/Slew_at_event' incorporates:
21251 * EnablePort: '<S722>/Enable'
21252 */
21253 if (L4_MABX_DW.Slew_at_event_MODE) {
21254 /* Update for UnitDelay: '<S793>/Unit_Delay' */
21255 L4_MABX_DW.Unit_Delay_DSTATE_fk = L4_MABX_B.LogicalOperator6_m;
21256
21257 /* Update for UnitDelay: '<S794>/Unit_Delay' incorporates:
21258 * Constant: '<S794>/Constant'
21259 */
21260 L4_MABX_DW.Unit_Delay_DSTATE_fo = L4_MABX_P.Constant_Value_dt;
21261
21262 /* Update for UnitDelay: '<S797>/FixPt Unit Delay2' incorporates:
21263 * Constant: '<S797>/FixPt Constant'
21264 */
21265 L4_MABX_DW.FixPtUnitDelay2_DSTATE_m = L4_MABX_P.FixPtConstant_Value_pn;
21266
21267 /* Update for UnitDelay: '<S797>/FixPt Unit Delay1' */
21268 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g = L4_MABX_B.If_Then_Else_ki.Switch;
21269
21270 /* Update for UnitDelay: '<S792>/Unit_Delay' */
21271 L4_MABX_DW.Unit_Delay_DSTATE_ki = L4_MABX_B.LogicalOperator_p;
21272 }
21273
21274 /* End of Update for SubSystem: '<S715>/Slew_at_event' */
21275
21276 /* Update for Enabled SubSystem: '<S422>/CAN_RX_EC1_00' incorporates:
21277 * EnablePort: '<S506>/Enable'
21278 */
21279 if (L4_MABX_B.LogicalOperator_aq) {
21280 /* Update for UnitDelay: '<S506>/Unit Delay' */
21281 for (i = 0; i < 39; i++) {
21282 L4_MABX_DW.UnitDelay_DSTATE_es[i] = L4_MABX_B.Data_a[i];
21283 }
21284
21285 /* End of Update for UnitDelay: '<S506>/Unit Delay' */
21286
21287 /* Update for Enabled SubSystem: '<S506>/Decode' incorporates:
21288 * EnablePort: '<S509>/Enable'
21289 */
21290 if (L4_MABX_B.RX_status_cc) {
21291 /* Update for UnitDelay: '<S509>/Unit_Delay' */
21292 L4_MABX_DW.Unit_Delay_DSTATE_ob = L4_MABX_B.timeStamp_i;
21293 }
21294
21295 /* End of Update for SubSystem: '<S506>/Decode' */
21296 }
21297
21298 /* End of Update for SubSystem: '<S422>/CAN_RX_EC1_00' */
21299
21300 /* Update for UnitDelay: '<S631>/Unit_Delay3' */
21301 L4_MABX_DW.Unit_Delay3_DSTATE = L4_MABX_B.LogicalOperator2_n;
21302
21303 /* Update for Enabled SubSystem: '<S445>/CAN_RX_VI_00' incorporates:
21304 * EnablePort: '<S630>/Enable'
21305 */
21306 if (L4_MABX_B.LogicalOperator_l) {
21307 /* Update for UnitDelay: '<S630>/Unit Delay' */
21308 for (i = 0; i < 17; i++) {
21309 L4_MABX_DW.UnitDelay_DSTATE_k[i] = L4_MABX_B.Data[i];
21310 }
21311
21312 /* End of Update for UnitDelay: '<S630>/Unit Delay' */
21313
21314 /* Update for Enabled SubSystem: '<S630>/Decode' incorporates:
21315 * EnablePort: '<S633>/Enable'
21316 */
21317 if (L4_MABX_B.RX_status_os) {
21318 /* Update for UnitDelay: '<S633>/Unit_Delay' */
21319 L4_MABX_DW.Unit_Delay_DSTATE_o = L4_MABX_B.timeStamp;
21320 }
21321
21322 /* End of Update for SubSystem: '<S630>/Decode' */
21323 }
21324
21325 /* End of Update for SubSystem: '<S445>/CAN_RX_VI_00' */
21326
21327 /* Update for UnitDelay: '<S631>/Unit_Delay' incorporates:
21328 * Constant: '<S631>/Constant'
21329 */
21330 L4_MABX_DW.Unit_Delay_DSTATE_c0 = L4_MABX_P.Constant_Value_p1;
21331
21332 /* Update for UnitDelay: '<S637>/Unit_Delay' */
21333 L4_MABX_DW.Unit_Delay_DSTATE_p4 = L4_MABX_B.LogicalOperator1_h;
21334
21335 /* Update for UnitDelay: '<S3>/Unit_Delay' */
21336 L4_MABX_DW.Unit_Delay_79_DSTATE = EStop;
21337 L4_MABX_DW.Unit_Delay_80_DSTATE = EnableSw;
21338 L4_MABX_DW.Unit_Delay_81_DSTATE = EngagePB;
21339 L4_MABX_DW.Unit_Delay_45_DSTATE = AutonomousEnabled;
21340 L4_MABX_DW.Unit_Delay_47_DSTATE = MABX_Mode;
21341
21342 /* Update for UnitDelay: '<S391>/Delay Input1' */
21343 L4_MABX_DW.DelayInput1_DSTATE_p = L4_MABX_B.Compare_ax;
21344
21345 /* Update for UnitDelay: '<S389>/Unit Delay' */
21346 L4_MABX_DW.UnitDelay_DSTATE = L4_MABX_B.Count;
21347
21348 /* Update for Atomic SubSystem: '<S65>/Task_10ms' */
21349 /* Update for Enabled SubSystem: '<S79>/Throttle_controller_gov' incorporates:
21350 * EnablePort: '<S206>/Enable'
21351 */
21352 if (L4_MABX_DW.Throttle_controller_gov_MODE) {
21353 /* Update for UnitDelay: '<S214>/Unit_Delay1' incorporates:
21354 * Constant: '<S214>/Constant3'
21355 */
21356 L4_MABX_DW.Unit_Delay1_DSTATE_p1 = L4_MABX_P.Constant3_Value_lp;
21357
21358 /* Update for UnitDelay: '<S214>/Unit_Delay' */
21359 L4_MABX_DW.Unit_Delay_DSTATE_lq = L4_MABX_B.RelationalOperator_fl;
21360
21361 /* Update for UnitDelay: '<S241>/Unit_Delay' incorporates:
21362 * Constant: '<S241>/Constant'
21363 */
21364 L4_MABX_DW.Unit_Delay_DSTATE_be = L4_MABX_P.Constant_Value_ck;
21365
21366 /* Update for UnitDelay: '<S261>/Unit_Delay1' incorporates:
21367 * Constant: '<S261>/Constant'
21368 */
21369 L4_MABX_DW.Unit_Delay1_DSTATE_h = L4_MABX_P.Constant_Value_ot0;
21370
21371 /* Update for UnitDelay: '<S262>/Unit_Delay' incorporates:
21372 * Constant: '<S262>/Constant'
21373 */
21374 L4_MABX_DW.Unit_Delay_DSTATE_fi = L4_MABX_P.Constant_Value_h0;
21375
21376 /* Update for UnitDelay: '<S266>/FixPt Unit Delay2' incorporates:
21377 * Constant: '<S266>/FixPt Constant'
21378 */
21379 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gq = L4_MABX_P.FixPtConstant_Value_jk;
21380
21381 /* Update for UnitDelay: '<S266>/FixPt Unit Delay1' */
21382 L4_MABX_DW.FixPtUnitDelay1_DSTATE_a = L4_MABX_B.If_Then_Else_cp.Switch;
21383
21384 /* Update for UnitDelay: '<S261>/Unit_Delay2' */
21385 L4_MABX_DW.Unit_Delay2_DSTATE_m = L4_MABX_B.If_Then_Else_k.Switch;
21386
21387 /* Update for Enabled SubSystem: '<S238>/Calculate_D_term' */
21388 L4__Calculate_D_term_Update(&L4_MABX_B.Calculate_D_term_h,
21389 &L4_MABX_DW.Calculate_D_term_h, &L4_MABX_P.Calculate_D_term_h);
21390
21391 /* End of Update for SubSystem: '<S238>/Calculate_D_term' */
21392
21393 /* Update for UnitDelay: '<S216>/Unit_Delay' */
21394 L4_MABX_DW.Unit_Delay_DSTATE_fz = L4_MABX_B.Add_ds;
21395
21396 /* Update for Enabled SubSystem: '<S238>/Calculate_I_term' */
21397 L4__Calculate_I_term_Update(&L4_MABX_B.Calculate_I_term_n,
21398 &L4_MABX_DW.Calculate_I_term_n, &L4_MABX_P.Calculate_I_term_n);
21399
21400 /* End of Update for SubSystem: '<S238>/Calculate_I_term' */
21401 }
21402
21403 /* End of Update for SubSystem: '<S79>/Throttle_controller_gov' */
21404
21405 /* Update for Enabled SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' incorporates:
21406 * EnablePort: '<S178>/Enable'
21407 */
21408 if (L4_MABX_DW.Determine_shift_interlock_brake) {
21409 /* Update for UnitDelay: '<S178>/Unit_Delay' */
21410 L4_MABX_DW.Unit_Delay_DSTATE_obz = L4_MABX_B.If_Then_Else_il.Switch;
21411
21412 /* Update for UnitDelay: '<S188>/Unit_Delay' incorporates:
21413 * Constant: '<S188>/Constant'
21414 */
21415 L4_MABX_DW.Unit_Delay_DSTATE_a = L4_MABX_P.Constant_Value_ii;
21416
21417 /* Update for UnitDelay: '<S192>/FixPt Unit Delay2' incorporates:
21418 * Constant: '<S192>/FixPt Constant'
21419 */
21420 L4_MABX_DW.FixPtUnitDelay2_DSTATE_l = L4_MABX_P.FixPtConstant_Value_k;
21421
21422 /* Update for UnitDelay: '<S192>/FixPt Unit Delay1' */
21423 L4_MABX_DW.FixPtUnitDelay1_DSTATE_d = L4_MABX_B.If_Then_Else_e.Switch;
21424
21425 /* Update for UnitDelay: '<S189>/Unit_Delay' */
21426 L4_MABX_DW.Unit_Delay_DSTATE_om = L4_MABX_B.DigitalClock_e;
21427 }
21428
21429 /* End of Update for SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' */
21430
21431 /* Update for Enabled SubSystem: '<S99>/Determine_brake_hold_pressure_target' incorporates:
21432 * EnablePort: '<S177>/Enable'
21433 */
21434 if (L4_MABX_DW.Determine_brake_hold_pressure_t) {
21435 /* Update for UnitDelay: '<S177>/Unit_Delay' */
21436 L4_MABX_DW.Unit_Delay_DSTATE_c = L4_MABX_B.If_Then_Else_gj.Switch;
21437
21438 /* Update for UnitDelay: '<S181>/Unit_Delay' incorporates:
21439 * Constant: '<S181>/Constant'
21440 */
21441 L4_MABX_DW.Unit_Delay_DSTATE_or = L4_MABX_P.Constant_Value_m3d;
21442
21443 /* Update for UnitDelay: '<S185>/FixPt Unit Delay2' incorporates:
21444 * Constant: '<S185>/FixPt Constant'
21445 */
21446 L4_MABX_DW.FixPtUnitDelay2_DSTATE_je = L4_MABX_P.FixPtConstant_Value_a;
21447
21448 /* Update for UnitDelay: '<S185>/FixPt Unit Delay1' */
21449 L4_MABX_DW.FixPtUnitDelay1_DSTATE_b0 = L4_MABX_B.If_Then_Else_nz.Switch;
21450
21451 /* Update for UnitDelay: '<S182>/Unit_Delay' */
21452 L4_MABX_DW.Unit_Delay_DSTATE_oj = L4_MABX_B.DigitalClock_c;
21453 }
21454
21455 /* End of Update for SubSystem: '<S99>/Determine_brake_hold_pressure_target' */
21456
21457 /* Update for Enabled SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' incorporates:
21458 * EnablePort: '<S96>/Enable'
21459 */
21460 if (L4_MABX_DW.Bendix_2C2_brake_application_pr) {
21461 /* Update for UnitDelay: '<S105>/Unit_Delay' */
21462 L4_MABX_DW.Unit_Delay_DSTATE_d = L4_MABX_B.DigitalClock_j;
21463
21464 /* Update for UnitDelay: '<S109>/Unit_Delay' incorporates:
21465 * Constant: '<S109>/Constant'
21466 */
21467 L4_MABX_DW.Unit_Delay_DSTATE_omj = L4_MABX_P.Constant_Value_lo0;
21468
21469 /* Update for UnitDelay: '<S129>/Unit_Delay1' incorporates:
21470 * Constant: '<S129>/Constant'
21471 */
21472 L4_MABX_DW.Unit_Delay1_DSTATE_b = L4_MABX_P.Constant_Value_olo;
21473
21474 /* Update for UnitDelay: '<S130>/Unit_Delay' incorporates:
21475 * Constant: '<S130>/Constant'
21476 */
21477 L4_MABX_DW.Unit_Delay_DSTATE_h4 = L4_MABX_P.Constant_Value_hi;
21478
21479 /* Update for UnitDelay: '<S134>/FixPt Unit Delay2' incorporates:
21480 * Constant: '<S134>/FixPt Constant'
21481 */
21482 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gm = L4_MABX_P.FixPtConstant_Value_f;
21483
21484 /* Update for UnitDelay: '<S134>/FixPt Unit Delay1' */
21485 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g1 = L4_MABX_B.If_Then_Else_bg.Switch;
21486
21487 /* Update for UnitDelay: '<S129>/Unit_Delay2' */
21488 L4_MABX_DW.Unit_Delay2_DSTATE_dy = L4_MABX_B.If_Then_Else_ly.Switch;
21489
21490 /* Update for Enabled SubSystem: '<S106>/Calculate_D_term' */
21491 L4__Calculate_D_term_Update(&L4_MABX_B.Calculate_D_term,
21492 &L4_MABX_DW.Calculate_D_term, &L4_MABX_P.Calculate_D_term);
21493
21494 /* End of Update for SubSystem: '<S106>/Calculate_D_term' */
21495
21496 /* Update for UnitDelay: '<S104>/Unit_Delay' */
21497 L4_MABX_DW.Unit_Delay_DSTATE_i = L4_MABX_B.Add_e;
21498
21499 /* Update for Enabled SubSystem: '<S106>/Calculate_I_term' */
21500 L4__Calculate_I_term_Update(&L4_MABX_B.Calculate_I_term,
21501 &L4_MABX_DW.Calculate_I_term, &L4_MABX_P.Calculate_I_term);
21502
21503 /* End of Update for SubSystem: '<S106>/Calculate_I_term' */
21504 }
21505
21506 /* End of Update for SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
21507
21508 /* Update for UnitDelay: '<S376>/Unit_Delay' */
21509 L4_MABX_DW.Unit_Delay_DSTATE_cx = L4_MABX_B.LogicalOperator2_f;
21510
21511 /* Update for UnitDelay: '<S377>/Unit_Delay' incorporates:
21512 * Constant: '<S377>/Constant'
21513 */
21514 L4_MABX_DW.Unit_Delay_DSTATE_d0 = L4_MABX_P.Constant_Value_c1;
21515
21516 /* Update for UnitDelay: '<S334>/Unit_Delay' */
21517 L4_MABX_DW.Unit_Delay_DSTATE_e = L4_MABX_B.If_Then_Else_m4.Switch;
21518
21519 /* Update for UnitDelay: '<S381>/FixPt Unit Delay2' incorporates:
21520 * Constant: '<S381>/FixPt Constant'
21521 */
21522 L4_MABX_DW.FixPtUnitDelay2_DSTATE_a = L4_MABX_P.FixPtConstant_Value_jx;
21523
21524 /* Update for UnitDelay: '<S381>/FixPt Unit Delay1' */
21525 L4_MABX_DW.FixPtUnitDelay1_DSTATE_h = L4_MABX_B.If_Then_Else_m4.Switch;
21526
21527 /* Update for UnitDelay: '<S378>/Unit_Delay' */
21528 L4_MABX_DW.Unit_Delay_DSTATE_m = L4_MABX_B.DigitalClock;
21529
21530 /* Update for UnitDelay: '<S365>/Unit_Delay' */
21531 L4_MABX_DW.Unit_Delay_DSTATE_iy = L4_MABX_B.LogicalOperator1_gm;
21532
21533 /* Update for UnitDelay: '<S366>/Unit_Delay' incorporates:
21534 * Constant: '<S366>/Constant'
21535 */
21536 L4_MABX_DW.Unit_Delay_DSTATE_mv = L4_MABX_P.Constant_Value_am;
21537
21538 /* Update for UnitDelay: '<S332>/Unit_Delay' */
21539 L4_MABX_DW.Unit_Delay_DSTATE_g = L4_MABX_B.If_Then_Else_bf.Switch;
21540
21541 /* Update for UnitDelay: '<S370>/FixPt Unit Delay2' incorporates:
21542 * Constant: '<S370>/FixPt Constant'
21543 */
21544 L4_MABX_DW.FixPtUnitDelay2_DSTATE_ip = L4_MABX_P.FixPtConstant_Value_d;
21545
21546 /* Update for UnitDelay: '<S370>/FixPt Unit Delay1' */
21547 L4_MABX_DW.FixPtUnitDelay1_DSTATE_hq = L4_MABX_B.If_Then_Else_bf.Switch;
21548
21549 /* Update for UnitDelay: '<S367>/Unit_Delay' */
21550 L4_MABX_DW.Unit_Delay_DSTATE_b = L4_MABX_B.DigitalClock_b;
21551
21552 /* Update for UnitDelay: '<S329>/Delay Input1' */
21553 L4_MABX_DW.DelayInput1_DSTATE[0] = L4_MABX_B.Distance_to_achieve_speed_targe;
21554 L4_MABX_DW.DelayInput1_DSTATE[1] = L4_MABX_B.Vehicle_speed_target_o;
21555
21556 /* Update for UnitDelay: '<S347>/Unit_Delay' */
21557 L4_MABX_DW.Unit_Delay_DSTATE_bw = L4_MABX_B.If_Then_Else_og.Switch;
21558
21559 /* Update for UnitDelay: '<S349>/Unit_Delay' */
21560 L4_MABX_DW.Unit_Delay_DSTATE_ko = L4_MABX_B.LogicalOperator1_p;
21561
21562 /* Update for UnitDelay: '<S358>/FixPt Unit Delay2' incorporates:
21563 * Constant: '<S358>/FixPt Constant'
21564 */
21565 L4_MABX_DW.FixPtUnitDelay2_DSTATE_f = L4_MABX_P.FixPtConstant_Value_g;
21566
21567 /* Update for UnitDelay: '<S358>/FixPt Unit Delay1' */
21568 L4_MABX_DW.FixPtUnitDelay1_DSTATE_l = L4_MABX_B.Xnew;
21569
21570 /* Update for UnitDelay: '<S356>/Unit_Delay' */
21571 L4_MABX_DW.Unit_Delay_DSTATE_p = L4_MABX_B.DigitalClock_f;
21572
21573 /* Update for UnitDelay: '<S336>/Delay Input1' */
21574 L4_MABX_DW.DelayInput1_DSTATE_f[0] = L4_MABX_B.Distance_to_achieve_speed_targe;
21575 L4_MABX_DW.DelayInput1_DSTATE_f[1] = L4_MABX_B.Vehicle_speed_target_o;
21576
21577 /* Update for UnitDelay: '<S338>/Unit_Delay' incorporates:
21578 * Constant: '<S338>/Constant'
21579 */
21580 L4_MABX_DW.Unit_Delay_DSTATE_l = L4_MABX_P.Constant_Value_pu;
21581
21582 /* Update for UnitDelay: '<S342>/FixPt Unit Delay2' incorporates:
21583 * Constant: '<S342>/FixPt Constant'
21584 */
21585 L4_MABX_DW.FixPtUnitDelay2_DSTATE_cn = L4_MABX_P.FixPtConstant_Value_az;
21586
21587 /* Update for UnitDelay: '<S342>/FixPt Unit Delay1' */
21588 L4_MABX_DW.FixPtUnitDelay1_DSTATE_ej = L4_MABX_B.If_Then_Else_pz.Switch;
21589
21590 /* Update for UnitDelay: '<S337>/Unit_Delay' */
21591 L4_MABX_DW.Unit_Delay_1_DSTATE_j =
21592 L4_MABX_B.If_Then_Else_mm.Vehicle_speed_target;
21593 L4_MABX_DW.Unit_Delay_2_DSTATE_e = L4_MABX_B.If_Then_Else_mm.Vehicle_speed;
21594 L4_MABX_DW.Unit_Delay_3_DSTATE_j = L4_MABX_B.If_Then_Else_mm.Distance_m;
21595
21596 /* Update for UnitDelay: '<S335>/Unit_Delay' */
21597 L4_MABX_DW.Unit_Delay_DSTATE_f = L4_MABX_B.DigitalClock_p;
21598
21599 /* Update for Enabled SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' incorporates:
21600 * EnablePort: '<S97>/Enable'
21601 */
21602 if (L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba) {
21603 /* Update for UnitDelay: '<S140>/Unit_Delay' */
21604 L4_MABX_DW.Unit_Delay_DSTATE_eu = L4_MABX_B.DigitalClock_n;
21605
21606 /* Update for UnitDelay: '<S147>/Unit_Delay' incorporates:
21607 * Constant: '<S147>/Constant'
21608 */
21609 L4_MABX_DW.Unit_Delay_DSTATE_n = L4_MABX_P.Constant_Value_j5;
21610
21611 /* Update for UnitDelay: '<S167>/Unit_Delay1' incorporates:
21612 * Constant: '<S167>/Constant'
21613 */
21614 L4_MABX_DW.Unit_Delay1_DSTATE_f = L4_MABX_P.Constant_Value_bd;
21615
21616 /* Update for UnitDelay: '<S168>/Unit_Delay' incorporates:
21617 * Constant: '<S168>/Constant'
21618 */
21619 L4_MABX_DW.Unit_Delay_DSTATE_g4 = L4_MABX_P.Constant_Value_m2;
21620
21621 /* Update for UnitDelay: '<S172>/FixPt Unit Delay2' incorporates:
21622 * Constant: '<S172>/FixPt Constant'
21623 */
21624 L4_MABX_DW.FixPtUnitDelay2_DSTATE_o = L4_MABX_P.FixPtConstant_Value_j1;
21625
21626 /* Update for UnitDelay: '<S172>/FixPt Unit Delay1' */
21627 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g2 = L4_MABX_B.If_Then_Else_iy.Switch;
21628
21629 /* Update for UnitDelay: '<S167>/Unit_Delay2' */
21630 L4_MABX_DW.Unit_Delay2_DSTATE_c = L4_MABX_B.If_Then_Else_bc.Switch;
21631
21632 /* Update for Enabled SubSystem: '<S144>/Calculate_D_term' */
21633 L4__Calculate_D_term_Update(&L4_MABX_B.Calculate_D_term_p,
21634 &L4_MABX_DW.Calculate_D_term_p, &L4_MABX_P.Calculate_D_term_p);
21635
21636 /* End of Update for SubSystem: '<S144>/Calculate_D_term' */
21637
21638 /* Update for UnitDelay: '<S139>/Unit_Delay' */
21639 L4_MABX_DW.Unit_Delay_DSTATE_h = L4_MABX_B.Add_mh;
21640
21641 /* Update for Enabled SubSystem: '<S144>/Calculate_I_term' */
21642 L4__Calculate_I_term_Update(&L4_MABX_B.Calculate_I_term_e,
21643 &L4_MABX_DW.Calculate_I_term_e, &L4_MABX_P.Calculate_I_term_e);
21644
21645 /* End of Update for SubSystem: '<S144>/Calculate_I_term' */
21646 }
21647
21648 /* End of Update for SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
21649
21650 /* Update for UnitDelay: '<S101>/Unit_Delay' incorporates:
21651 * Constant: '<S101>/Constant7'
21652 */
21653 L4_MABX_DW.Unit_Delay_DSTATE_eu4 = L4_MABX_P.Constant7_Value_j;
21654
21655 /* Update for UnitDelay: '<S197>/Unit_Delay1' incorporates:
21656 * Constant: '<S197>/Constant'
21657 */
21658 L4_MABX_DW.Unit_Delay1_DSTATE_d = L4_MABX_P.Constant_Value_jf;
21659
21660 /* Update for UnitDelay: '<S197>/Unit_Delay2' */
21661 L4_MABX_DW.Unit_Delay2_DSTATE_e = L4_MABX_B.If_Then_Else_g.Switch;
21662
21663 /* Update for UnitDelay: '<S196>/UD' */
21664 L4_MABX_DW.UD_DSTATE = L4_MABX_B.TSamp;
21665
21666 /* Update for UnitDelay: '<S314>/Unit_Delay1' incorporates:
21667 * Constant: '<S314>/Constant'
21668 */
21669 L4_MABX_DW.Unit_Delay1_DSTATE_db = L4_MABX_P.Constant_Value_hx;
21670
21671 /* Update for UnitDelay: '<S314>/Unit_Delay2' */
21672 L4_MABX_DW.Unit_Delay2_DSTATE_d = L4_MABX_B.If_Then_Else_b3.Switch;
21673
21674 /* Update for UnitDelay: '<S313>/Delay Input1' */
21675 L4_MABX_DW.DelayInput1_DSTATE_f0 = L4_MABX_B.JumpNearEdge;
21676
21677 /* Update for UnitDelay: '<S315>/Unit_Delay1' incorporates:
21678 * Constant: '<S315>/Constant'
21679 */
21680 L4_MABX_DW.Unit_Delay1_DSTATE_a = L4_MABX_P.Constant_Value_bh;
21681
21682 /* Update for UnitDelay: '<S315>/Unit_Delay2' */
21683 L4_MABX_DW.Unit_Delay2_DSTATE_i = L4_MABX_B.If_Then_Else_mk.Switch;
21684
21685 /* Update for UnitDelay: '<S316>/Unit_Delay1' incorporates:
21686 * Constant: '<S316>/Constant'
21687 */
21688 L4_MABX_DW.Unit_Delay1_DSTATE_p = L4_MABX_P.Constant_Value_hxo;
21689
21690 /* Update for UnitDelay: '<S316>/Unit_Delay2' */
21691 L4_MABX_DW.Unit_Delay2_DSTATE_p = L4_MABX_B.If_Then_Else_lh.Switch;
21692
21693 /* Update for Enabled SubSystem: '<S276>/Slew_at_event' incorporates:
21694 * EnablePort: '<S321>/Enable'
21695 */
21696 if (L4_MABX_DW.Slew_at_event_MODE_d) {
21697 /* Update for UnitDelay: '<S323>/Unit_Delay' */
21698 L4_MABX_DW.Unit_Delay_DSTATE_bd = L4_MABX_B.DataTypeConversion_l1;
21699
21700 /* Update for UnitDelay: '<S324>/Unit_Delay' incorporates:
21701 * Constant: '<S324>/Constant'
21702 */
21703 L4_MABX_DW.Unit_Delay_DSTATE_jt = L4_MABX_P.Constant_Value_hg;
21704
21705 /* Update for UnitDelay: '<S327>/FixPt Unit Delay2' incorporates:
21706 * Constant: '<S327>/FixPt Constant'
21707 */
21708 L4_MABX_DW.FixPtUnitDelay2_DSTATE_j = L4_MABX_P.FixPtConstant_Value_np;
21709
21710 /* Update for UnitDelay: '<S327>/FixPt Unit Delay1' */
21711 L4_MABX_DW.FixPtUnitDelay1_DSTATE_o = L4_MABX_B.If_Then_Else_n3.Switch;
21712
21713 /* Update for UnitDelay: '<S322>/Unit_Delay' */
21714 L4_MABX_DW.Unit_Delay_DSTATE_ll = L4_MABX_B.LogicalOperator_dm;
21715 }
21716
21717 /* End of Update for SubSystem: '<S276>/Slew_at_event' */
21718
21719 /* Update for UnitDelay: '<S278>/Unit Delay' */
21720 L4_MABX_DW.UnitDelay_DSTATE_d = L4_MABX_B.Switch1_fi;
21721
21722 /* Update for UnitDelay: '<S288>/Unit Delay' */
21723 L4_MABX_DW.UnitDelay_DSTATE_m = L4_MABX_B.Add1_m;
21724
21725 /* Update for UnitDelay: '<S289>/Unit Delay' */
21726 L4_MABX_DW.UnitDelay_DSTATE_m0 = L4_MABX_B.Switch_k;
21727
21728 /* Update for UnitDelay: '<S289>/Unit Delay1' */
21729 L4_MABX_DW.UnitDelay1_DSTATE_k = L4_MABX_B.Divide1_b;
21730
21731 /* Update for UnitDelay: '<S283>/Unit Delay' */
21732 L4_MABX_DW.UnitDelay_DSTATE_m1 = L4_MABX_B.Switch1_pb;
21733
21734 /* Update for DiscreteTransferFcn: '<S274>/Error 5Hz LPF' */
21735 denAccum = L4_MABX_B.error;
21736 denAccum -= L4_MABX_P.Error5HzLPF_DenCoef[1] * L4_MABX_DW.Error5HzLPF_states[0];
21737 denAccum -= L4_MABX_P.Error5HzLPF_DenCoef[2] * L4_MABX_DW.Error5HzLPF_states[1];
21738 denAccum -= L4_MABX_P.Error5HzLPF_DenCoef[3] * L4_MABX_DW.Error5HzLPF_states[2];
21739 denAccum /= L4_MABX_P.Error5HzLPF_DenCoef[0];
21740 L4_MABX_DW.Error5HzLPF_states[2] = L4_MABX_DW.Error5HzLPF_states[1];
21741 L4_MABX_DW.Error5HzLPF_states[1] = L4_MABX_DW.Error5HzLPF_states[0];
21742 L4_MABX_DW.Error5HzLPF_states[0] = denAccum;
21743
21744 /* Update for DiscreteIntegrator: '<S298>/Integrator' */
21745 L4_MABX_DW.Integrator_DSTATE += L4_MABX_P.Integrator_gainval *
21746 L4_MABX_B.IntegralGain;
21747 L4_MABX_DW.Integrator_PrevResetState = (int8_T)AutonomousEnabled;
21748
21749 /* Update for DiscreteIntegrator: '<S298>/Filter' */
21750 L4_MABX_DW.Filter_DSTATE += L4_MABX_P.Filter_gainval *
21751 L4_MABX_B.FilterCoefficient;
21752 L4_MABX_DW.Filter_PrevResetState = (int8_T)AutonomousEnabled;
21753
21754 /* Update for UnitDelay: '<S300>/Delay Input' */
21755 L4_MABX_DW.DelayInput_DSTATE = L4_MABX_B.Saturate;
21756
21757 /* Update for UnitDelay: '<S300>/Delay Output' */
21758 L4_MABX_DW.DelayOutput_DSTATE = L4_MABX_B.Downcast;
21759
21760 /* Update for DiscreteTransferFcn: '<S274>/5Hz LPF' */
21761 denAccum = L4_MABX_B.Sum2;
21762 denAccum -= L4_MABX_P.uHzLPF_DenCoef[1] * L4_MABX_DW.uHzLPF_states[0];
21763 denAccum -= L4_MABX_P.uHzLPF_DenCoef[2] * L4_MABX_DW.uHzLPF_states[1];
21764 denAccum -= L4_MABX_P.uHzLPF_DenCoef[3] * L4_MABX_DW.uHzLPF_states[2];
21765 denAccum /= L4_MABX_P.uHzLPF_DenCoef[0];
21766 L4_MABX_DW.uHzLPF_states[2] = L4_MABX_DW.uHzLPF_states[1];
21767 L4_MABX_DW.uHzLPF_states[1] = L4_MABX_DW.uHzLPF_states[0];
21768 L4_MABX_DW.uHzLPF_states[0] = denAccum;
21769
21770 /* Update for DiscreteIntegrator: '<S292>/Discrete-Time Integrator' */
21771 L4_MABX_DW.DiscreteTimeIntegrator_IC_LOADI = 0U;
21772 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE +=
21773 L4_MABX_P.DiscreteTimeIntegrator_gainval * L4_MABX_B.Gain_o;
21774 L4_MABX_DW.DiscreteTimeIntegrator_PrevRese = (int8_T)AutonomousEnabled;
21775
21776 /* Update for UnitDelay: '<S308>/Delay Input2' */
21777 L4_MABX_DW.DelayInput2_DSTATE = L4_MABX_B.DifferenceInputs2;
21778
21779 /* Update for DiscreteIntegrator: '<S80>/Discrete-Time Integrator' incorporates:
21780 * Constant: '<S80>/ResetIntegrator'
21781 */
21782 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e +=
21783 L4_MABX_P.DiscreteTimeIntegrator_gainva_l * L4_MABX_B.Switch1_p;
21784 if (L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e >=
21785 L4_MABX_P.DiscreteTimeIntegrator_UpperSat) {
21786 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
21787 L4_MABX_P.DiscreteTimeIntegrator_UpperSat;
21788 } else {
21789 if (L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e <=
21790 L4_MABX_P.DiscreteTimeIntegrator_LowerSat) {
21791 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
21792 L4_MABX_P.DiscreteTimeIntegrator_LowerSat;
21793 }
21794 }
21795
21796 if (L4_MABX_P.ResetIntegrator_Value > 0.0) {
21797 L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e = 1;
21798 } else if (L4_MABX_P.ResetIntegrator_Value < 0.0) {
21799 L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e = -1;
21800 } else if (L4_MABX_P.ResetIntegrator_Value == 0.0) {
21801 L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e = 0;
21802 } else {
21803 L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e = 2;
21804 }
21805
21806 /* End of Update for DiscreteIntegrator: '<S80>/Discrete-Time Integrator' */
21807
21808 /* Update for UnitDelay: '<S80>/Unit Delay' */
21809 L4_MABX_DW.UnitDelay_DSTATE_e = L4_MABX_B.Switch2_i1;
21810
21811 /* Update for UnitDelay: '<S360>/FixPt Unit Delay2' incorporates:
21812 * Constant: '<S360>/FixPt Constant'
21813 */
21814 L4_MABX_DW.FixPtUnitDelay2_DSTATE_aw = L4_MABX_P.FixPtConstant_Value_p;
21815
21816 /* Update for UnitDelay: '<S360>/FixPt Unit Delay1' */
21817 L4_MABX_DW.FixPtUnitDelay1_DSTATE_pe = L4_MABX_B.Xnew_h;
21818
21819 /* Update for UnitDelay: '<S361>/FixPt Unit Delay2' incorporates:
21820 * Constant: '<S361>/FixPt Constant'
21821 */
21822 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gx = L4_MABX_P.FixPtConstant_Value_el;
21823
21824 /* Update for UnitDelay: '<S361>/FixPt Unit Delay1' */
21825 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g0 = L4_MABX_B.Xnew_f;
21826
21827 /* Update for UnitDelay: '<S355>/Unit_Delay' */
21828 L4_MABX_DW.Unit_Delay_DSTATE_j = L4_MABX_B.DigitalClock_d;
21829
21830 /* End of Update for SubSystem: '<S65>/Task_10ms' */
21831
21832 /* Update for Atomic SubSystem: '<S804>/CAN_TX_10ms' */
21833
21834 /* Update for UnitDelay: '<S961>/Unit_Delay' */
21835 L4_MABX_DW.Unit_Delay_DSTATE_g0 = L4_MABX_B.Operator_ng;
21836
21837 /* Update for UnitDelay: '<S962>/Unit Delay' */
21838 L4_MABX_DW.UnitDelay_DSTATE_a = L4_MABX_B.Switch1_hz;
21839
21840 /* End of Update for SubSystem: '<S804>/CAN_TX_10ms' */
21841
21842 /* Update for UnitDelay: '<S814>/Unit Delay2' */
21843 L4_MABX_DW.UnitDelay2_DSTATE = L4_MABX_B.enTPCM;
21844
21845 /* Update for UnitDelay: '<S814>/Unit Delay1' */
21846 L4_MABX_DW.UnitDelay1_DSTATE_a = L4_MABX_B.TPDT_count;
21847
21848 /* Update for UnitDelay: '<S814>/Unit Delay3' */
21849 L4_MABX_DW.UnitDelay3_DSTATE = L4_MABX_B.enTPDT;
21850
21851 /* Update for UnitDelay: '<S3>/Unit_Delay' incorporates:
21852 * Constant: '<S202>/Constant'
21853 * Constant: '<S80>/zero'
21854 */
21855 L4_MABX_DW.Unit_Delay_1_DSTATE = DesiredSteeringAngle;
21856 L4_MABX_DW.Unit_Delay_10_DSTATE = L4_MABX_B.Add1_h;
21857 L4_MABX_DW.Unit_Delay_100_DSTATE = L4_MABX_B.SPN1760_GrossCombinationVehicle;
21858 L4_MABX_DW.Unit_Delay_101_DSTATE = L4_MABX_B.ACCDistanceAlertSignal;
21859 L4_MABX_DW.Unit_Delay_102_DSTATE = L4_MABX_B.ForwardCollisionWarning;
21860 L4_MABX_DW.Unit_Delay_103_DSTATE = L4_MABX_B.SPN544_EngineReferenceTorque;
21861 L4_MABX_DW.Unit_Delay_104_DSTATE = L4_MABX_B.SFunction1_o4_ne;
21862 L4_MABX_DW.Unit_Delay_105_DSTATE = L4_MABX_B.SFunction1_o5_p;
21863 L4_MABX_DW.Unit_Delay_106_DSTATE = L4_MABX_B.SFunction1_o6_e;
21864 L4_MABX_DW.Unit_Delay_107_DSTATE = L4_MABX_B.SFunction1_o7_l;
21865 L4_MABX_DW.Unit_Delay_108_DSTATE = SteerWheelAngle;
21866 L4_MABX_DW.Unit_Delay_109_DSTATE = YawRate;
21867 L4_MABX_DW.Unit_Delay_11_DSTATE = L4_MABX_B.Switch2_i1;
21868 L4_MABX_DW.Unit_Delay_110_DSTATE = SPN1810_LongitudinalAcceleration;
21869 L4_MABX_DW.Unit_Delay_111_DSTATE = L4_MABX_B.SFunction1_o2_e1;
21870 L4_MABX_DW.Unit_Delay_112_DSTATE = L4_MABX_B.SFunction1_o3_ko;
21871 L4_MABX_DW.Unit_Delay_113_DSTATE = L4_MABX_B.SFunction1_o5_i;
21872 L4_MABX_DW.Unit_Delay_114_DSTATE = L4_MABX_B.SFunction1_o1_afv;
21873 L4_MABX_DW.Unit_Delay_115_DSTATE = L4_MABX_B.SFunction1_o3_ng;
21874 L4_MABX_DW.Unit_Delay_116_DSTATE = L4_MABX_B.LogicalOperator1_h;
21875 L4_MABX_DW.Unit_Delay_117_DSTATE = L4_MABX_B.LogicalOperator1_j;
21876 L4_MABX_DW.Unit_Delay_118_DSTATE = L4_MABX_B.PitchAngleExRange;
21877 L4_MABX_DW.Unit_Delay_119_DSTATE = L4_MABX_B.SFunction1_o3_nn;
21878 L4_MABX_DW.Unit_Delay_12_DSTATE = L4_MABX_B.DiscreteTimeIntegrator_h;
21879 L4_MABX_DW.Unit_Delay_120_DSTATE = L4_MABX_B.SFunction1_o1_dc;
21880 L4_MABX_DW.Unit_Delay_121_DSTATE = L4_MABX_B.SFunction1_o2_et;
21881 L4_MABX_DW.Unit_Delay_122_DSTATE = L4_MABX_B.Latitude_;
21882 L4_MABX_DW.Unit_Delay_123_DSTATE = L4_MABX_B.Longitude_;
21883 L4_MABX_DW.Unit_Delay_124_DSTATE = L4_MABX_B.HDOP_;
21884 L4_MABX_DW.Unit_Delay_125_DSTATE = L4_MABX_B.XPRControlMode;
21885 L4_MABX_DW.Unit_Delay_126_DSTATE = L4_MABX_B.XPRErrorState;
21886 L4_MABX_DW.Unit_Delay_127_DSTATE = L4_MABX_B.PressureP1;
21887 L4_MABX_DW.Unit_Delay_128_DSTATE = L4_MABX_B.PressureP4;
21888 L4_MABX_DW.Unit_Delay_129_DSTATE = L4_MABX_B.PressureP21;
21889 L4_MABX_DW.Unit_Delay_13_DSTATE = L4_MABX_B.numLanePoints_j;
21890 L4_MABX_DW.Unit_Delay_130_DSTATE = L4_MABX_B.PressureP22;
21891 L4_MABX_DW.Unit_Delay_131_DSTATE = L4_MABX_B.PressureP42;
21892 L4_MABX_DW.Unit_Delay_132_DSTATE = ReAX_ActualHandwheelPos;
21893 L4_MABX_DW.Unit_Delay_133_DSTATE = ReAX_EchoedSteerWheelPos;
21894 L4_MABX_DW.Unit_Delay_134_DSTATE = RTMapsOk;
21895 L4_MABX_DW.Unit_Delay_135_DSTATE = SupervisorMode;
21896 L4_MABX_DW.Unit_Delay_136_DSTATE = CurrentAzimuth_rad;
21897 L4_MABX_DW.Unit_Delay_137_DSTATE = TargetAzimuth_rad;
21898 L4_MABX_DW.Unit_Delay_138_DSTATE = CurrentVelocity_kph;
21899 L4_MABX_DW.Unit_Delay_139_DSTATE = TargetVelocity_kph;
21900 L4_MABX_DW.Unit_Delay_14_DSTATE = L4_MABX_B.correctedError;
21901 L4_MABX_DW.Unit_Delay_140_DSTATE = Curvature;
21902 L4_MABX_DW.Unit_Delay_141_DSTATE = CrosstrackError;
21903 L4_MABX_DW.Unit_Delay_15_DSTATE = L4_MABX_B.Switch1_j;
21904 L4_MABX_DW.Unit_Delay_16_DSTATE = L4_MABX_B.rad2deg1;
21905 L4_MABX_DW.Unit_Delay_17_DSTATE = L4_MABX_B.If_Then_Else_izl.Switch;
21906 L4_MABX_DW.Unit_Delay_18_DSTATE = L4_MABX_B.APTC_arb_pedal_low_idl_sw_o;
21907 L4_MABX_DW.Unit_Delay_19_DSTATE = L4_MABX_B.If_Then_Else_f.Switch;
21908 L4_MABX_DW.Unit_Delay_2_DSTATE = L4_MABX_B.Add3;
21909 L4_MABX_DW.Unit_Delay_20_DSTATE = L4_MABX_P.Constant_Value_jg4;
21910 L4_MABX_DW.Unit_Delay_21_DSTATE = L4_MABX_B.If_Then_Else_pi.Switch;
21911 L4_MABX_DW.Unit_Delay_22_DSTATE = L4_MABX_B.Add_ds;
21912 L4_MABX_DW.Unit_Delay_23_DSTATE = L4_MABX_B.If_Then_Else_k.Switch;
21913 L4_MABX_DW.Unit_Delay_24_DSTATE = L4_MABX_B.Product_i;
21914 L4_MABX_DW.Unit_Delay_25_DSTATE = L4_MABX_B.PID_i_term_c;
21915 L4_MABX_DW.Unit_Delay_26_DSTATE = L4_MABX_B.PID_d_term_c;
21916 L4_MABX_DW.Unit_Delay_27_DSTATE = L4_MABX_B.PID_hold_i_term_f_b;
21917 L4_MABX_DW.Unit_Delay_28_DSTATE = L4_MABX_B.ThrottlePID_Y_m;
21918 L4_MABX_DW.Unit_Delay_29_DSTATE = L4_MABX_B.MinMax1_n;
21919 L4_MABX_DW.Unit_Delay_3_DSTATE = L4_MABX_B.Add_px;
21920 L4_MABX_DW.Unit_Delay_30_DSTATE = L4_MABX_B.F_Ignition_relay_command_i;
21921 L4_MABX_DW.Unit_Delay_31_DSTATE = L4_MABX_B.F_Inverter_relay_command_p;
21922 L4_MABX_DW.Unit_Delay_32_DSTATE = L4_MABX_B.F_MABX_relay_command_n;
21923 L4_MABX_DW.Unit_Delay_33_DSTATE = L4_MABX_B.F_Sensor_relay_command_k;
21924 L4_MABX_DW.Unit_Delay_34_DSTATE = L4_MABX_B.BrkPedArbBrakeSwitch_c;
21925 L4_MABX_DW.Unit_Delay_35_DSTATE = L4_MABX_B.Diff;
21926 L4_MABX_DW.Unit_Delay_36_DSTATE = L4_MABX_B.F_Brake_control_active;
21927 L4_MABX_DW.Unit_Delay_37_DSTATE = L4_MABX_B.F_Hold_brakes_at_zero_d;
21928 L4_MABX_DW.Unit_Delay_38_DSTATE = L4_MABX_B.BrakingPID_Y_k;
21929 L4_MABX_DW.Unit_Delay_39_DSTATE = 0.0;
21930 L4_MABX_DW.Unit_Delay_4_DSTATE = L4_MABX_B.Product_d;
21931 L4_MABX_DW.Unit_Delay_40_DSTATE = L4_MABX_B.VSPD_TARGET_KPH_APV_g;
21932 L4_MABX_DW.Unit_Delay_41_DSTATE = L4_MABX_B.Vehicle_speed_target_n;
21933 L4_MABX_DW.Unit_Delay_42_DSTATE = L4_MABX_B.VSPD_HYST_KPH_APV_f;
21934 L4_MABX_DW.Unit_Delay_43_DSTATE = L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b;
21935 L4_MABX_DW.Unit_Delay_44_DSTATE = L4_MABX_B.ACCEL_LIM_MS2_APV_b;
21936 L4_MABX_DW.Unit_Delay_46_DSTATE = AutonomousOutputEnabled;
21937 L4_MABX_DW.Unit_Delay_5_DSTATE = L4_MABX_B.Switch2_i;
21938 L4_MABX_DW.Unit_Delay_6_DSTATE = L4_MABX_B.Conversion;
21939 L4_MABX_DW.Unit_Delay_7_DSTATE = L4_MABX_B.Add2;
21940 L4_MABX_DW.Unit_Delay_8_DSTATE = L4_MABX_P.zero_Value;
21941 L4_MABX_DW.Unit_Delay_82_DSTATE = Pedal_pwm_position;
21942 L4_MABX_DW.Unit_Delay_83_DSTATE = L4_MABX_B.IgnitionKeySwitch_voltage;
21943 L4_MABX_DW.Unit_Delay_84_DSTATE = L4_MABX_B.SFunction1_o8_jt;
21944 L4_MABX_DW.Unit_Delay_85_DSTATE = L4_MABX_B.SFunction1_o2_ez;
21945 L4_MABX_DW.Unit_Delay_86_DSTATE = L4_MABX_B.SFunction1_o7_c;
21946 L4_MABX_DW.Unit_Delay_87_DSTATE = L4_MABX_B.SFunction1_o1_c4;
21947 L4_MABX_DW.Unit_Delay_88_DSTATE = L4_MABX_B.SFunction1_o1_gh;
21948 L4_MABX_DW.Unit_Delay_89_DSTATE = L4_MABX_B.SFunction1_o2_k5;
21949 L4_MABX_DW.Unit_Delay_9_DSTATE = L4_MABX_B.Add1_h;
21950 L4_MABX_DW.Unit_Delay_90_DSTATE = L4_MABX_B.SFunction1_o4_kq;
21951 L4_MABX_DW.Unit_Delay_91_DSTATE = L4_MABX_B.SPN524_TransSelectedGear;
21952 L4_MABX_DW.Unit_Delay_92_DSTATE = L4_MABX_B.SPN523_TransCurrentGear;
21953 L4_MABX_DW.Unit_Delay_93_DSTATE = L4_MABX_B.SPN526_TransActualGearRatio;
21954 L4_MABX_DW.Unit_Delay_94_DSTATE = L4_MABX_B.SFunction1_o4_e1;
21955 L4_MABX_DW.Unit_Delay_95_DSTATE = L4_MABX_B.SFunction1_o2_pk;
21956 L4_MABX_DW.Unit_Delay_96_DSTATE = L4_MABX_B.SFunction1_o5_aw;
21957 L4_MABX_DW.Unit_Delay_97_DSTATE = L4_MABX_B.SFunction1_o3_el;
21958 L4_MABX_DW.Unit_Delay_98_DSTATE = L4_MABX_B.SPN514_NominalFrictionPercentTo;
21959 L4_MABX_DW.Unit_Delay_99_DSTATE = L4_MABX_B.SPN2978_EstEngParasiticLossesPe;
21960
21961 /* Update for UnitDelay: '<S631>/Unit_Delay2' */
21962 L4_MABX_DW.Unit_Delay2_DSTATE_l = L4_MABX_B.LogicalOperator2_h;
21963
21964 /* Update for UnitDelay: '<S631>/Unit_Delay1' incorporates:
21965 * Constant: '<S631>/Constant1'
21966 */
21967 L4_MABX_DW.Unit_Delay1_DSTATE_o = L4_MABX_P.Constant1_Value_kk;
21968
21969 /* Update for UnitDelay: '<S638>/Unit_Delay' */
21970 L4_MABX_DW.Unit_Delay_DSTATE_c1 = L4_MABX_B.LogicalOperator1_j;
21971
21972 /* Update for UnitDelay: '<S10>/Unit_Delay' incorporates:
21973 * Constant: '<S10>/Constant'
21974 */
21975 L4_MABX_DW.Unit_Delay_DSTATE_do = L4_MABX_P.Constant_Value_g5;
21976
21977 /* Update absolute time */
21978 /* The "clockTick0" counts the number of times the code of this task has
21979 * been executed. The absolute time is the multiplication of "clockTick0"
21980 * and "Timing.stepSize0". Size of "clockTick0" ensures timer will not
21981 * overflow during the application lifespan selected.
21982 * Timer of this task consists of two 32 bit unsigned integers.
21983 * The two integers represent the low bits Timing.clockTick0 and the high bits
21984 * Timing.clockTickH0. When the low bit overflows to 0, the high bits increment.
21985 */
21986 if (!(++L4_MABX_M->Timing.clockTick0)) {
21987 ++L4_MABX_M->Timing.clockTickH0;
21988 }
21989
21990 L4_MABX_M->Timing.t[0] = L4_MABX_M->Timing.clockTick0 *
21991 L4_MABX_M->Timing.stepSize0 + L4_MABX_M->Timing.clockTickH0 *
21992 L4_MABX_M->Timing.stepSize0 * 4294967296.0;
21993}
21994
21995/* Model output function for TID1 */
21996void L4_MABX_output1(void) /* Sample time: [0.02s, 0.0s] */
21997{
21998 int_T tid = 1;
21999 int32_T i;
22000 uint32_T q0;
22001 uint32_T qY;
22002 uint8_T tmp;
22003 real_T u0;
22004 real_T u1;
22005 real_T u2;
22006
22007 /* Outputs for Atomic SubSystem: '<S804>/CAN_TX_20ms' */
22008
22009 /* Switch: '<S970>/Switch1' incorporates:
22010 * Constant: '<S970>/Constant4'
22011 */
22012 if (L4_MABX_B.AutonomousOutputEnabled_m) {
22013 /* Product: '<S970>/Divide1' incorporates:
22014 * Constant: '<S970>/Constant2'
22015 */
22016 L4_MABX_B.XBRExternalAccelDemand_g = L4_MABX_B.BrakingPID_Y_b *
22017 L4_MABX_P.Constant2_Value_d;
22018 L4_MABX_B.XBRExternalAccelDemand = L4_MABX_B.XBRExternalAccelDemand_g;
22019 } else {
22020 L4_MABX_B.XBRExternalAccelDemand = L4_MABX_P.Constant4_Value_a;
22021 }
22022
22023 /* End of Switch: '<S970>/Switch1' */
22024
22025 /* MultiPortSwitch: '<S970>/Multiport Switch' incorporates:
22026 * Constant: '<S970>/Constant10'
22027 * Constant: '<S970>/Constant7'
22028 * Constant: '<S970>/Constant8'
22029 * Constant: '<S970>/Constant9'
22030 */
22031 switch ((int32_T)L4_MABX_B.BrakingControlActive_g) {
22032 case 0:
22033 L4_MABX_B.XBRPassThroughActive = L4_MABX_P.Constant10_Value_k;
22034 break;
22035
22036 case 1:
22037 L4_MABX_B.XBRPassThroughActive = L4_MABX_P.Constant7_Value_l;
22038 break;
22039
22040 case 2:
22041 L4_MABX_B.XBRPassThroughActive = L4_MABX_P.Constant8_Value_d;
22042 break;
22043
22044 default:
22045 L4_MABX_B.XBRPassThroughActive = L4_MABX_P.Constant9_Value_j;
22046 break;
22047 }
22048
22049 /* End of MultiPortSwitch: '<S970>/Multiport Switch' */
22050
22051 /* Outputs for Atomic SubSystem: '<S970>/If_Then_Else' */
22052
22053 /* Constant: '<S970>/XBRValueOverride' incorporates:
22054 * Constant: '<S970>/XBRControlMode'
22055 * Constant: '<S970>/XBRControlModeOVR'
22056 * Constant: '<S970>/XBREnduranceBrakeIntegrationMode'
22057 * Constant: '<S970>/XBREnduranceBrakeIntegrationModeOVR'
22058 * Constant: '<S970>/XBRExternalAccelDemandOVR'
22059 * Constant: '<S970>/XBRPassThroughActiveOVR'
22060 * Constant: '<S970>/XBRPassThroughEnabled'
22061 * Constant: '<S970>/XBRPassThroughEnabledOVR'
22062 * Constant: '<S970>/XBRPriority'
22063 * Constant: '<S970>/XBRPriorityOVR'
22064 * Constant: '<S970>/XBRUrgency'
22065 * Constant: '<S970>/XBRUrgencyOVR'
22066 */
22067 L4_MABX_If_Then_Else_o(L4_MABX_P.XBRValueOverride_Value,
22068 L4_MABX_P.XBRExternalAccelDemandOVR_Value,
22069 L4_MABX_P.XBREnduranceBrakeIntegrationMod, L4_MABX_P.XBRPriorityOVR_Value,
22070 L4_MABX_P.XBRControlModeOVR_Value, L4_MABX_P.XBRPassThroughActiveOVR_Value,
22071 L4_MABX_P.XBRUrgencyOVR_Value, L4_MABX_P.XBRPassThroughEnabledOVR_Value,
22072 L4_MABX_B.XBRExternalAccelDemand, L4_MABX_P.XBREnduranceBrakeIntegrationM_a,
22073 L4_MABX_P.XBRPriority_Value, L4_MABX_P.XBRControlMode_Value,
22074 L4_MABX_B.XBRPassThroughActive, L4_MABX_P.XBRUrgency_Value,
22075 L4_MABX_P.XBRPassThroughEnabled_Value, &L4_MABX_B.If_Then_Else_ou);
22076
22077 /* End of Outputs for SubSystem: '<S970>/If_Then_Else' */
22078
22079 /* DataTypeConversion: '<S973>/Data Type Conversion1' */
22080 L4_MABX_B.DataTypeConversion1_i = (real_T)
22081 L4_MABX_B.If_Then_Else_ou.XBREnduranceBrakeIntegrationMod;
22082
22083 /* DataTypeConversion: '<S973>/Data Type Conversion2' */
22084 L4_MABX_B.DataTypeConversion2_lh = (real_T)
22085 L4_MABX_B.If_Then_Else_ou.XBRPriority;
22086
22087 /* DataTypeConversion: '<S973>/Data Type Conversion3' */
22088 L4_MABX_B.DataTypeConversion3_d = (real_T)
22089 L4_MABX_B.If_Then_Else_ou.XBRControlMode;
22090
22091 /* DataTypeConversion: '<S973>/Data Type Conversion4' */
22092 L4_MABX_B.DataTypeConversion4_h =
22093 L4_MABX_B.If_Then_Else_ou.XBRExternalAccelDemand;
22094
22095 /* DataTypeConversion: '<S973>/Data Type Conversion5' */
22096 L4_MABX_B.DataTypeConversion5_b = (real_T)
22097 L4_MABX_B.If_Then_Else_ou.XBRPassThroughActive;
22098
22099 /* DataTypeConversion: '<S973>/Data Type Conversion6' */
22100 L4_MABX_B.DataTypeConversion6_iv = L4_MABX_B.If_Then_Else_ou.XBRUrgency;
22101
22102 /* DataTypeConversion: '<S973>/Data Type Conversion7' */
22103 L4_MABX_B.DataTypeConversion7_da =
22104 L4_MABX_B.If_Then_Else_ou.XBRPassThroughEnabled;
22105
22106 /* UnitDelay: '<S966>/Unit_Delay' */
22107 L4_MABX_B.Unit_Delay_c4 = L4_MABX_DW.Unit_Delay_DSTATE_mz;
22108
22109 /* Logic: '<S966>/Logical Operator8' */
22110 L4_MABX_B.LogicalOperator8_h = !L4_MABX_B.TmpRTBAtLogicalOperator8Inport1;
22111
22112 /* Logic: '<S966>/Logical Operator7' */
22113 L4_MABX_B.LogicalOperator7_l = (L4_MABX_B.Unit_Delay_c4 &&
22114 L4_MABX_B.LogicalOperator8_h);
22115
22116 /* Logic: '<S966>/Logical Operator1' */
22117 L4_MABX_B.LogicalOperator1_m = (L4_MABX_B.LogicalOperator7_l ||
22118 L4_MABX_B.TmpRTBAtLogicalOperator1Inport2);
22119
22120 /* DataTypeConversion: '<S966>/Data Type Conversion' incorporates:
22121 * Constant: '<S810>/CANT_PROPB_XBR_B3_CHANNEL_APV'
22122 */
22123 u0 = L4_MABX_P.CANT_PROPB_XBR_B3_CHANNEL_APV_V;
22124 if (u0 < 256.0) {
22125 if (u0 >= 0.0) {
22126 tmp = (uint8_T)u0;
22127 } else {
22128 tmp = 0U;
22129 }
22130 } else {
22131 tmp = MAX_uint8_T;
22132 }
22133
22134 L4_MABX_B.DataTypeConversion_pf = tmp;
22135
22136 /* End of DataTypeConversion: '<S966>/Data Type Conversion' */
22137
22138 /* S-Function (sfix_bitop): '<S971>/Operator' */
22139 L4_MABX_B.Operator_f2 = (uint8_T)(L4_MABX_B.DataTypeConversion_pf &
22140 L4_MABX_P.Operator_BitMask_pt);
22141
22142 /* DataTypeConversion: '<S971>/DataType' */
22143 L4_MABX_B.DataType_no = L4_MABX_B.Operator_f2;
22144
22145 /* DataTypeConversion: '<S966>/Data Type Conversion2' */
22146 L4_MABX_B.DataTypeConversion2_kn = (L4_MABX_B.DataType_no != 0);
22147
22148 /* Logic: '<S966>/Logical Operator' */
22149 L4_MABX_B.LogicalOperator_i = (L4_MABX_B.LogicalOperator1_m &&
22150 L4_MABX_B.DataTypeConversion2_kn);
22151
22152 /* Outputs for Enabled SubSystem: '<S973>/PropB_XBR_B3' incorporates:
22153 * EnablePort: '<S974>/Enable'
22154 */
22155 if (L4_MABX_B.LogicalOperator_i) {
22156 /* S-Function (rti_commonblock): '<S974>/S-Function1' */
22157 /* This comment workarounds a code generation problem */
22158
22159 /* dSPACE RTICAN TX Message Block: "PropB_XBR_B3" Id:218038707 */
22160 {
22161 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
22162
22163 Float32 delayTime = 0.0;
22164
22165 /* ... Read status and timestamp info (previous message) */
22166 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]);
22167
22168 /* Convert timestamp */
22169 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->processed) {
22170 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->timestamp =
22171 rtk_dsts_time_to_simtime_convert
22172 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->timestamp);
22173 }
22174
22175 /* Messages with timestamp zero have been received in pause/stop state
22176 and must not be handled.
22177 */
22178 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->timestamp > 0.0) {
22179 L4_MABX_B.SFunction1_o1_a = (real_T)
22180 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->processed;
22181 L4_MABX_B.SFunction1_o2_i2 = (real_T)
22182 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->timestamp;
22183 L4_MABX_B.SFunction1_o3_lq = (real_T)
22184 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->deltatime;
22185 L4_MABX_B.SFunction1_o4_ds = (real_T)
22186 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->delaytime;
22187 }
22188
22189 /* ... Encode Simulink signals of TX and RM blocks*/
22190 {
22191 rtican_Signal_t CAN_Sgn;
22192
22193 /* ...... "SPN2920_ExternalAccelerationDemand" (0|16, standard signal, unsigned int, little endian) */
22194 /* Add or substract 0.5 in order to round to nearest integer */
22195 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion4_h -
22196 ( -15.687 ) ) / 0.00048828125 + 0.5);
22197 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
22198 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
22199 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte1;
22200
22201 /* ...... "SPN2915_XBREnduranceBrkIntegrationMode" (16|2, standard signal, unsigned int, little endian) */
22202 /* Add or substract 0.5 in order to round to nearest integer */
22203 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_i ) +
22204 0.5);
22205 CAN_Sgn.UnsignedSgn &= 0x00000003;
22206 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
22207
22208 /* ...... "SPN2915_XBRPriority" (18|2, standard signal, unsigned int, little endian) */
22209 /* Add or substract 0.5 in order to round to nearest integer */
22210 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion2_lh ) +
22211 0.5);
22212 CAN_Sgn.UnsignedSgn &= 0x00000003;
22213 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
22214 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
22215
22216 /* ...... "SPN2916_XBRControlMode" (20|2, standard signal, unsigned int, little endian) */
22217 /* Add or substract 0.5 in order to round to nearest integer */
22218 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion3_d ) +
22219 0.5);
22220 CAN_Sgn.UnsignedSgn &= 0x00000003;
22221 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
22222 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
22223
22224 /* ...... "XBRPassThroughActive" (22|2, standard signal, unsigned int, little endian) */
22225 /* Add or substract 0.5 in order to round to nearest integer */
22226 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion5_b ) +
22227 0.5);
22228 CAN_Sgn.UnsignedSgn &= 0x00000003;
22229 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
22230 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
22231
22232 /* ...... "SPN4099_XBRUrgency" (24|8, standard signal, unsigned int, little endian) */
22233 /* Add or substract 0.5 in order to round to nearest integer */
22234 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion6_iv - ( 0
22235 ) ) / 0.4 + 0.5);
22236 CAN_Sgn.UnsignedSgn &= 0x000000FF;
22237 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
22238
22239 /* ...... "XBRPassThroughEnable" (54|2, standard signal, unsigned int, little endian) */
22240 /* Add or substract 0.5 in order to round to nearest integer */
22241 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion7_da ) +
22242 0.5);
22243 CAN_Sgn.UnsignedSgn &= 0x00000003;
22244 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
22245 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
22246 }
22247
22248 /* mask unused bits with '1' */
22249 CAN_Msg[4] |= 0xFF;
22250 CAN_Msg[5] |= 0xFF;
22251 CAN_Msg[6] |= 0x3F;
22252 CAN_Msg[7] |= 0xFF;
22253
22254 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
22255 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3], 8,
22256 &(CAN_Msg[0]), delayTime);
22257 }
22258 }
22259
22260 /* End of Outputs for SubSystem: '<S973>/PropB_XBR_B3' */
22261
22262 /* RelationalOperator: '<S972>/Compare' incorporates:
22263 * Constant: '<S972>/Constant'
22264 */
22265 L4_MABX_B.Compare_i = (L4_MABX_B.If_Then_Else_ou.XBRPassThroughActive ==
22266 L4_MABX_P.CompareToConstant_const_p);
22267
22268 /* Saturate: '<S969>/Saturation' incorporates:
22269 * Constant: '<S969>/2C2_OR_VALUE_APV'
22270 */
22271 u0 = L4_MABX_P.uC2_OR_VALUE_APV_Value;
22272 u1 = L4_MABX_P.Saturation_LowerSat_l;
22273 u2 = L4_MABX_P.Saturation_UpperSat_ek;
22274 if (u0 > u2) {
22275 L4_MABX_B.Saturation_c = u2;
22276 } else if (u0 < u1) {
22277 L4_MABX_B.Saturation_c = u1;
22278 } else {
22279 L4_MABX_B.Saturation_c = u0;
22280 }
22281
22282 /* End of Saturate: '<S969>/Saturation' */
22283
22284 /* Outputs for Atomic SubSystem: '<S969>/If_Then_Else1' */
22285
22286 /* Constant: '<S969>/F_2C2_OR_APV' */
22287 L4_MABX_If_Then_Else_g(L4_MABX_P.F_2C2_OR_APV_Value, L4_MABX_B.Saturation_c,
22288 L4_MABX_B.BrakingPID_Y_bk, &L4_MABX_B.If_Then_Else1_hl);
22289
22290 /* End of Outputs for SubSystem: '<S969>/If_Then_Else1' */
22291
22292 /* Gain: '<S969>/Gain' */
22293 L4_MABX_B.Gain_c = L4_MABX_P.Gain_Gain_d * L4_MABX_B.If_Then_Else1_hl.Switch;
22294
22295 /* Gain: '<S986>/Gain' */
22296 L4_MABX_B.Gain_b = L4_MABX_P.Gain_Gain_md * L4_MABX_B.Gain_c;
22297
22298 /* DataTypeConversion: '<S986>/Data Type Conversion2' */
22299 u0 = floor(L4_MABX_B.Gain_b);
22300 if (rtIsNaN(u0) || rtIsInf(u0)) {
22301 u0 = 0.0;
22302 } else {
22303 u0 = fmod(u0, 256.0);
22304 }
22305
22306 L4_MABX_B.DataTypeConversion2_ky = (uint8_T)(u0 < 0.0 ? (int32_T)(uint8_T)
22307 -(int8_T)(uint8_T)-u0 : (int32_T)(uint8_T)u0);
22308
22309 /* End of DataTypeConversion: '<S986>/Data Type Conversion2' */
22310
22311 /* DataTypeConversion: '<S986>/Data Type Conversion3' incorporates:
22312 * Constant: '<S969>/BrkControlMode_Active'
22313 */
22314 u0 = floor(L4_MABX_P.BrkControlMode_Active_Value);
22315 if (rtIsNaN(u0) || rtIsInf(u0)) {
22316 u0 = 0.0;
22317 } else {
22318 u0 = fmod(u0, 256.0);
22319 }
22320
22321 L4_MABX_B.DataTypeConversion3_k2 = (uint8_T)(u0 < 0.0 ? (int32_T)(uint8_T)
22322 -(int8_T)(uint8_T)-u0 : (int32_T)(uint8_T)u0);
22323
22324 /* End of DataTypeConversion: '<S986>/Data Type Conversion3' */
22325
22326 /* S-Function (sfix_bitop): '<S986>/Bitwise Operator14' */
22327 L4_MABX_B.BitwiseOperator14 = (uint8_T)(L4_MABX_B.DataTypeConversion3_k2 &
22328 L4_MABX_P.BitwiseOperator14_BitMask);
22329
22330 /* DataTypeConversion: '<S986>/Data Type Conversion4' incorporates:
22331 * Constant: '<S969>/BrkControlPriority'
22332 */
22333 u0 = floor(L4_MABX_P.BrkControlPriority_Value);
22334 if (rtIsNaN(u0) || rtIsInf(u0)) {
22335 u0 = 0.0;
22336 } else {
22337 u0 = fmod(u0, 256.0);
22338 }
22339
22340 L4_MABX_B.DataTypeConversion4_gz = (uint8_T)(u0 < 0.0 ? (int32_T)(uint8_T)
22341 -(int8_T)(uint8_T)-u0 : (int32_T)(uint8_T)u0);
22342
22343 /* End of DataTypeConversion: '<S986>/Data Type Conversion4' */
22344
22345 /* S-Function (sfix_bitop): '<S986>/Bitwise Operator1' */
22346 L4_MABX_B.BitwiseOperator1 = (uint8_T)(L4_MABX_B.DataTypeConversion4_gz &
22347 L4_MABX_P.BitwiseOperator1_BitMask);
22348
22349 /* ArithShift: '<S986>/Shift_Arithmetic ' */
22350 L4_MABX_B.Shift_Arithmetic_g0 = (uint8_T)(L4_MABX_B.BitwiseOperator1 << 2);
22351
22352 /* DataTypeConversion: '<S986>/Data Type Conversion12' */
22353 L4_MABX_B.DataTypeConversion12_l = L4_MABX_B.Shift_Arithmetic_g0;
22354
22355 /* DataTypeConversion: '<S986>/Data Type Conversion6' incorporates:
22356 * Constant: '<S986>/Constant2'
22357 */
22358 L4_MABX_B.DataTypeConversion6_i3 = L4_MABX_P.Constant2_Value_ksv;
22359
22360 /* S-Function (sfix_bitop): '<S986>/Bitwise Operator17' */
22361 L4_MABX_B.BitwiseOperator17_h = (uint8_T)(L4_MABX_B.BitwiseOperator14 |
22362 L4_MABX_B.DataTypeConversion12_l | L4_MABX_B.DataTypeConversion6_i3);
22363
22364 /* Gain: '<S986>/Gain1' incorporates:
22365 * Constant: '<S969>/BrkControl_RearAxlePressureProportioning'
22366 */
22367 L4_MABX_B.Gain1_l = L4_MABX_P.Gain1_Gain_h *
22368 L4_MABX_P.BrkControl_RearAxlePressureProp;
22369
22370 /* DataTypeConversion: '<S986>/Data Type Conversion11' */
22371 u0 = floor(L4_MABX_B.Gain1_l);
22372 if (rtIsNaN(u0) || rtIsInf(u0)) {
22373 u0 = 0.0;
22374 } else {
22375 u0 = fmod(u0, 256.0);
22376 }
22377
22378 L4_MABX_B.DataTypeConversion11_f = (uint8_T)(u0 < 0.0 ? (int32_T)(uint8_T)
22379 -(int8_T)(uint8_T)-u0 : (int32_T)(uint8_T)u0);
22380
22381 /* End of DataTypeConversion: '<S986>/Data Type Conversion11' */
22382
22383 /* Reshape: '<S989>/Reshape' incorporates:
22384 * Constant: '<S989>/Constant'
22385 */
22386 for (i = 0; i < 16; i++) {
22387 L4_MABX_B.Reshape_c[i] = L4_MABX_P.Repeating_Sequence_Stair_Out_dt[i];
22388 }
22389
22390 /* End of Reshape: '<S989>/Reshape' */
22391
22392 /* UnitDelay: '<S989>/Unit_Delay' */
22393 L4_MABX_B.Unit_Delay_lr = L4_MABX_DW.Unit_Delay_DSTATE_ju;
22394
22395 /* UnitDelay: '<S990>/Unit Delay' */
22396 L4_MABX_B.UnitDelay_c = L4_MABX_DW.UnitDelay_DSTATE_j;
22397
22398 /* Switch: '<S993>/Switch1' incorporates:
22399 * Constant: '<S990>/E'
22400 * Constant: '<S990>/IV'
22401 * Switch: '<S992>/Switch1'
22402 */
22403 if (L4_MABX_B.Unit_Delay_lr) {
22404 L4_MABX_B.Switch1_h = L4_MABX_P.IV_Value_m0;
22405 } else {
22406 if (L4_MABX_P.E_Value_jr) {
22407 /* Sum: '<S990>/Subtract' incorporates:
22408 * Constant: '<S990>/Constant'
22409 * Switch: '<S992>/Switch1'
22410 */
22411 q0 = L4_MABX_P.Constant_Value_bt;
22412 qY = q0 + L4_MABX_B.UnitDelay_c;
22413 if (qY < q0) {
22414 qY = MAX_uint32_T;
22415 }
22416
22417 L4_MABX_B.Subtract_bb = qY;
22418
22419 /* End of Sum: '<S990>/Subtract' */
22420
22421 /* Switch: '<S992>/Switch1' */
22422 L4_MABX_B.Switch1_k = L4_MABX_B.Subtract_bb;
22423 } else {
22424 /* Switch: '<S992>/Switch1' */
22425 L4_MABX_B.Switch1_k = L4_MABX_B.UnitDelay_c;
22426 }
22427
22428 L4_MABX_B.Switch1_h = L4_MABX_B.Switch1_k;
22429 }
22430
22431 /* End of Switch: '<S993>/Switch1' */
22432
22433 /* Selector: '<S989>/Selector' */
22434 L4_MABX_B.Selector_g = L4_MABX_B.Reshape_c[(int32_T)L4_MABX_B.Switch1_h - 1];
22435
22436 /* DataTypeConversion: '<S986>/Data Type Conversion10' */
22437 L4_MABX_B.DataTypeConversion10_o = L4_MABX_B.Selector_g;
22438
22439 /* S-Function (sfix_bitop): '<S986>/Bitwise Operator6' */
22440 L4_MABX_B.BitwiseOperator6 = (uint8_T)(L4_MABX_B.DataTypeConversion10_o &
22441 L4_MABX_P.BitwiseOperator6_BitMask);
22442
22443 /* DataTypeConversion: '<S985>/Data Type Conversion6' incorporates:
22444 * Constant: '<S985>/Priority'
22445 */
22446 L4_MABX_B.DataTypeConversion6_n = L4_MABX_P.Priority_Value_c;
22447
22448 /* ArithShift: '<S985>/Shift_Arithmetic 5' */
22449 L4_MABX_B.Shift_Arithmetic5 = L4_MABX_B.DataTypeConversion6_n << 26;
22450
22451 /* DataTypeConversion: '<S985>/Data Type Conversion7' incorporates:
22452 * Constant: '<S985>/ExtendedDataPage'
22453 */
22454 L4_MABX_B.DataTypeConversion7_i = L4_MABX_P.ExtendedDataPage_Value_d;
22455
22456 /* ArithShift: '<S985>/Shift_Arithmetic 6' */
22457 L4_MABX_B.Shift_Arithmetic6 = L4_MABX_B.DataTypeConversion7_i << 25;
22458
22459 /* DataTypeConversion: '<S985>/Data Type Conversion8' incorporates:
22460 * Constant: '<S985>/DataPage'
22461 */
22462 L4_MABX_B.DataTypeConversion8_n = L4_MABX_P.DataPage_Value_p;
22463
22464 /* ArithShift: '<S985>/Shift_Arithmetic 7' */
22465 L4_MABX_B.Shift_Arithmetic7 = L4_MABX_B.DataTypeConversion8_n << 24;
22466
22467 /* DataTypeConversion: '<S985>/Data Type Conversion9' incorporates:
22468 * Constant: '<S985>/PDUFormat'
22469 */
22470 L4_MABX_B.DataTypeConversion9_p = L4_MABX_P.PDUFormat_Value_o;
22471
22472 /* ArithShift: '<S985>/Shift_Arithmetic 8' */
22473 L4_MABX_B.Shift_Arithmetic8 = L4_MABX_B.DataTypeConversion9_p << 16;
22474
22475 /* DataTypeConversion: '<S985>/Data Type Conversion10' incorporates:
22476 * Constant: '<S985>/PDUSpecific'
22477 */
22478 L4_MABX_B.DataTypeConversion10_l = L4_MABX_P.PDUSpecific_Value_g;
22479
22480 /* ArithShift: '<S985>/Shift_Arithmetic 9' */
22481 L4_MABX_B.Shift_Arithmetic9 = L4_MABX_B.DataTypeConversion10_l << 8;
22482
22483 /* DataTypeConversion: '<S985>/Data Type Conversion11' incorporates:
22484 * Constant: '<S985>/SourceAddress'
22485 */
22486 L4_MABX_B.DataTypeConversion11_m = L4_MABX_P.SourceAddress_Value_c;
22487
22488 /* S-Function (sfix_bitop): '<S985>/Bitwise Operator17' */
22489 L4_MABX_B.BitwiseOperator17 = L4_MABX_B.Shift_Arithmetic5 |
22490 L4_MABX_B.Shift_Arithmetic6 | L4_MABX_B.Shift_Arithmetic7 |
22491 L4_MABX_B.Shift_Arithmetic8 | L4_MABX_B.Shift_Arithmetic9 |
22492 L4_MABX_B.DataTypeConversion11_m;
22493
22494 /* DataTypeConversion: '<S986>/Data Type Conversion7' */
22495 L4_MABX_B.DataTypeConversion7_b = L4_MABX_B.BitwiseOperator17;
22496
22497 /* S-Function (sfix_bitop): '<S986>/Bitwise Operator2' */
22498 L4_MABX_B.BitwiseOperator2 = L4_MABX_B.DataTypeConversion7_b &
22499 L4_MABX_P.BitwiseOperator2_BitMask;
22500
22501 /* S-Function (sfix_bitop): '<S986>/Bitwise Operator3' */
22502 L4_MABX_B.BitwiseOperator3 = L4_MABX_B.DataTypeConversion7_b &
22503 L4_MABX_P.BitwiseOperator3_BitMask;
22504
22505 /* ArithShift: '<S986>/Shift_Arithmetic 3' */
22506 L4_MABX_B.Shift_Arithmetic3_o = L4_MABX_B.BitwiseOperator3 >> 8;
22507
22508 /* DataTypeConversion: '<S986>/Data Type Conversion5' */
22509 L4_MABX_B.DataTypeConversion5_ls = (uint8_T)L4_MABX_B.Shift_Arithmetic3_o;
22510
22511 /* S-Function (sfix_bitop): '<S986>/Bitwise Operator4' */
22512 L4_MABX_B.BitwiseOperator4 = L4_MABX_B.DataTypeConversion7_b &
22513 L4_MABX_P.BitwiseOperator4_BitMask;
22514
22515 /* ArithShift: '<S986>/Shift_Arithmetic 4' */
22516 L4_MABX_B.Shift_Arithmetic4_c = L4_MABX_B.BitwiseOperator4 >> 16;
22517
22518 /* DataTypeConversion: '<S986>/Data Type Conversion8' */
22519 L4_MABX_B.DataTypeConversion8_hc = (uint8_T)L4_MABX_B.Shift_Arithmetic4_c;
22520
22521 /* S-Function (sfix_bitop): '<S986>/Bitwise Operator5' */
22522 L4_MABX_B.BitwiseOperator5 = L4_MABX_B.DataTypeConversion7_b &
22523 L4_MABX_P.BitwiseOperator5_BitMask;
22524
22525 /* ArithShift: '<S986>/Shift_Arithmetic 5' */
22526 L4_MABX_B.Shift_Arithmetic5_i = L4_MABX_B.BitwiseOperator5 >> 24;
22527
22528 /* DataTypeConversion: '<S986>/Data Type Conversion9' */
22529 L4_MABX_B.DataTypeConversion9_l = (uint8_T)L4_MABX_B.Shift_Arithmetic5_i;
22530
22531 /* Sum: '<S986>/Add2' incorporates:
22532 * Constant: '<S986>/Constant'
22533 * Constant: '<S986>/Constant1'
22534 * Constant: '<S986>/Constant3'
22535 * Constant: '<S986>/Constant4'
22536 */
22537 L4_MABX_B.Add2_d = (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)
22538 (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)
22539 ((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)
22540 (uint8_T)((uint32_T)L4_MABX_B.DataTypeConversion2_ky +
22541 L4_MABX_B.BitwiseOperator17_h) + L4_MABX_B.DataTypeConversion11_f)
22542 + L4_MABX_P.Constant3_Value_dy) + L4_MABX_P.Constant4_Value_o0) +
22543 L4_MABX_P.Constant_Value_pq) + L4_MABX_P.Constant1_Value_hg) + (uint8_T)
22544 L4_MABX_B.BitwiseOperator2) + L4_MABX_B.DataTypeConversion5_ls) +
22545 L4_MABX_B.DataTypeConversion8_hc) + L4_MABX_B.DataTypeConversion9_l) +
22546 L4_MABX_B.BitwiseOperator6);
22547
22548 /* ArithShift: '<S986>/Shift_Arithmetic 6' */
22549 L4_MABX_B.Shift_Arithmetic6_d = (uint8_T)((uint32_T)L4_MABX_B.Add2_d >> 4);
22550
22551 /* Sum: '<S986>/Add3' */
22552 L4_MABX_B.Add3_k = (uint8_T)((uint32_T)L4_MABX_B.Shift_Arithmetic6_d +
22553 L4_MABX_B.Add2_d);
22554
22555 /* S-Function (sfix_bitop): '<S986>/Bitwise Operator8' */
22556 L4_MABX_B.BitwiseOperator8 = (uint8_T)(L4_MABX_B.Add3_k &
22557 L4_MABX_P.BitwiseOperator8_BitMask);
22558
22559 /* ArithShift: '<S986>/Shift_Arithmetic 7' */
22560 L4_MABX_B.Shift_Arithmetic7_p = (uint8_T)(L4_MABX_B.BitwiseOperator8 << 4);
22561
22562 /* S-Function (sfix_bitop): '<S986>/Bitwise Operator7' */
22563 L4_MABX_B.BitwiseOperator7 = (uint8_T)(L4_MABX_B.BitwiseOperator6 |
22564 L4_MABX_B.Shift_Arithmetic7_p);
22565
22566 /* DataTypeConversion: '<S967>/Data Type Conversion1' incorporates:
22567 * Constant: '<S986>/Constant'
22568 * Constant: '<S986>/Constant1'
22569 * Constant: '<S986>/Constant3'
22570 * Constant: '<S986>/Constant4'
22571 */
22572 L4_MABX_B.DataTypeConversion1_f[0] = L4_MABX_B.DataTypeConversion2_ky;
22573 L4_MABX_B.DataTypeConversion1_f[1] = L4_MABX_B.BitwiseOperator17_h;
22574 L4_MABX_B.DataTypeConversion1_f[2] = L4_MABX_B.DataTypeConversion11_f;
22575 L4_MABX_B.DataTypeConversion1_f[3] = L4_MABX_P.Constant3_Value_dy;
22576 L4_MABX_B.DataTypeConversion1_f[4] = L4_MABX_P.Constant4_Value_o0;
22577 L4_MABX_B.DataTypeConversion1_f[5] = L4_MABX_P.Constant_Value_pq;
22578 L4_MABX_B.DataTypeConversion1_f[6] = L4_MABX_P.Constant1_Value_hg;
22579 L4_MABX_B.DataTypeConversion1_f[7] = L4_MABX_B.BitwiseOperator7;
22580
22581 /* Outputs for Enabled SubSystem: '<S975>/PropB_Bendix_2C2_XPR' incorporates:
22582 * EnablePort: '<S976>/Enable'
22583 */
22584 /* Constant: '<S969>/CPV' */
22585 if (L4_MABX_P.CPV_Value_c) {
22586 /* S-Function (rti_commonblock): '<S976>/S-Function1' */
22587 /* This comment workarounds a code generation problem */
22588
22589 /* dSPACE RTICAN TX Message Block: "PropB_Bendix_2C2_XPR" Id:218060389 */
22590 {
22591 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
22592
22593 Float32 delayTime = 0.0;
22594
22595 /* ... Read status and timestamp info (previous message) */
22596 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]);
22597
22598 /* Convert timestamp */
22599 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->processed) {
22600 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->timestamp =
22601 rtk_dsts_time_to_simtime_convert
22602 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->timestamp);
22603 }
22604
22605 /* Messages with timestamp zero have been received in pause/stop state
22606 and must not be handled.
22607 */
22608 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->timestamp > 0.0) {
22609 L4_MABX_B.SFunction1_o1_g = (real_T)
22610 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->processed;
22611 L4_MABX_B.SFunction1_o2_j = (real_T)
22612 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->timestamp;
22613 L4_MABX_B.SFunction1_o3_ls = (real_T)
22614 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->deltatime;
22615 L4_MABX_B.SFunction1_o4_mx = (real_T)
22616 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->delaytime;
22617 }
22618
22619 /* ... Encode Simulink signals of TX and RM blocks*/
22620 {
22621 rtican_Signal_t CAN_Sgn;
22622
22623 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
22624 /* Add or substract 0.5 in order to round to nearest integer */
22625 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_f[0] ) +
22626 0.5);
22627 CAN_Sgn.UnsignedSgn &= 0x000000FF;
22628 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
22629
22630 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
22631 /* Add or substract 0.5 in order to round to nearest integer */
22632 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_f[1] ) +
22633 0.5);
22634 CAN_Sgn.UnsignedSgn &= 0x000000FF;
22635 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
22636
22637 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
22638 /* Add or substract 0.5 in order to round to nearest integer */
22639 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_f[2] ) +
22640 0.5);
22641 CAN_Sgn.UnsignedSgn &= 0x000000FF;
22642 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
22643
22644 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
22645 /* Add or substract 0.5 in order to round to nearest integer */
22646 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_f[3] ) +
22647 0.5);
22648 CAN_Sgn.UnsignedSgn &= 0x000000FF;
22649 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
22650
22651 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
22652 /* Add or substract 0.5 in order to round to nearest integer */
22653 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_f[4] ) +
22654 0.5);
22655 CAN_Sgn.UnsignedSgn &= 0x000000FF;
22656 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
22657
22658 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
22659 /* Add or substract 0.5 in order to round to nearest integer */
22660 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_f[5] ) +
22661 0.5);
22662 CAN_Sgn.UnsignedSgn &= 0x000000FF;
22663 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
22664
22665 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
22666 /* Add or substract 0.5 in order to round to nearest integer */
22667 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_f[6] ) +
22668 0.5);
22669 CAN_Sgn.UnsignedSgn &= 0x000000FF;
22670 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
22671
22672 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
22673 /* Add or substract 0.5 in order to round to nearest integer */
22674 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_f[7] ) +
22675 0.5);
22676 CAN_Sgn.UnsignedSgn &= 0x000000FF;
22677 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
22678 }
22679
22680 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
22681 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665], 8,
22682 &(CAN_Msg[0]), delayTime);
22683 }
22684 }
22685
22686 /* End of Constant: '<S969>/CPV' */
22687 /* End of Outputs for SubSystem: '<S975>/PropB_Bendix_2C2_XPR' */
22688
22689 /* DataTypeConversion: '<S983>/Data Type Conversion' */
22690 L4_MABX_B.DataTypeConversion_lb = L4_MABX_B.FrontAxleSpeed_h;
22691
22692 /* DataTypeConversion: '<S983>/Data Type Conversion1' */
22693 L4_MABX_B.DataTypeConversion1_k = L4_MABX_B.SPN1807_SteeringWheelAngle_c;
22694
22695 /* DataTypeConversion: '<S983>/Data Type Conversion2' */
22696 L4_MABX_B.DataTypeConversion2_ds = L4_MABX_B.SPN1808_YawRate_e;
22697
22698 /* DataTypeConversion: '<S983>/Data Type Conversion3' */
22699 L4_MABX_B.DataTypeConversion3_b = L4_MABX_B.SPN1810_LongitudinalAccelerat_m;
22700
22701 /* DataTypeConversion: '<S968>/Data Type Conversion' incorporates:
22702 * Constant: '<S810>/CANT_STD_ODOMETRY_CHANNEL_APV'
22703 */
22704 L4_MABX_B.DataTypeConversion_d3 = (uint8_T)
22705 L4_MABX_P.CANT_STD_ODOMETRY_CHANNEL_APV_V;
22706
22707 /* S-Function (sfix_bitop): '<S982>/Operator' */
22708 L4_MABX_B.Operator_mx = (uint8_T)(L4_MABX_B.DataTypeConversion_d3 &
22709 L4_MABX_P.Operator_BitMask_anb);
22710
22711 /* DataTypeConversion: '<S982>/DataType' */
22712 L4_MABX_B.DataType = L4_MABX_B.Operator_mx;
22713
22714 /* ArithShift: '<S968>/Shift_Arithmetic 4' */
22715 L4_MABX_B.Shift_Arithmetic4 = ldexp(L4_MABX_B.DataType, (-5));
22716
22717 /* DataTypeConversion: '<S968>/Data Type Conversion7' */
22718 L4_MABX_B.DataTypeConversion7_ec = (L4_MABX_B.Shift_Arithmetic4 != 0.0);
22719
22720 /* Outputs for Enabled SubSystem: '<S983>/Std_OdometryData' incorporates:
22721 * EnablePort: '<S984>/Enable'
22722 */
22723 if (L4_MABX_B.DataTypeConversion7_ec) {
22724 /* S-Function (rti_commonblock): '<S984>/S-Function1' */
22725 /* This comment workarounds a code generation problem */
22726
22727 /* dSPACE RTICAN TX Message Block: "Std_OdometryData" Id:10 */
22728 {
22729 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
22730
22731 Float32 delayTime = 0.0;
22732
22733 /* ... Read status and timestamp info (previous message) */
22734 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]);
22735
22736 /* Convert timestamp */
22737 if (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->processed) {
22738 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->timestamp =
22739 rtk_dsts_time_to_simtime_convert
22740 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->timestamp);
22741 }
22742
22743 /* Messages with timestamp zero have been received in pause/stop state
22744 and must not be handled.
22745 */
22746 if (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->timestamp > 0.0) {
22747 L4_MABX_B.SFunction1_o1_d = (real_T)
22748 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->processed;
22749 L4_MABX_B.SFunction1_o2_n = (real_T)
22750 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->timestamp;
22751 L4_MABX_B.SFunction1_o3_g3 = (real_T)
22752 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->deltatime;
22753 L4_MABX_B.SFunction1_o4_p = (real_T)
22754 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->delaytime;
22755 }
22756
22757 /* ... Encode Simulink signals of TX and RM blocks*/
22758 {
22759 rtican_Signal_t CAN_Sgn;
22760
22761 /* ...... "SPN904_FrontAxleSpeed" (0|16, standard signal, unsigned int, little endian) */
22762 /* Add or substract 0.5 in order to round to nearest integer */
22763 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_lb - ( 0 )
22764 ) / 0.00390625 + 0.5);
22765 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
22766 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
22767 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte1;
22768
22769 /* ...... "SPN1807_SteeringWheelAngle" (16|16, standard signal, unsigned int, little endian) */
22770 /* Add or substract 0.5 in order to round to nearest integer */
22771 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_k -
22772 ( -31.374 ) ) / 0.0009765625 + 0.5);
22773 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
22774 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
22775 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte1;
22776
22777 /* ...... "SPN1808_YawRate" (32|16, standard signal, unsigned int, little endian) */
22778 /* Add or substract 0.5 in order to round to nearest integer */
22779 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion2_ds -
22780 ( -3.92 ) ) / 0.0001220703125 + 0.5);
22781 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
22782 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
22783 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte1;
22784
22785 /* ...... "SPN1810_LongitudinalAcceleration" (48|8, standard signal, unsigned int, little endian) */
22786 /* Add or substract 0.5 in order to round to nearest integer */
22787 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion3_b -
22788 ( -12.5 ) ) / 0.1 + 0.5);
22789 CAN_Sgn.UnsignedSgn &= 0x000000FF;
22790 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
22791 }
22792
22793 /* mask unused bits with '1' */
22794 CAN_Msg[7] |= 0xFF;
22795
22796 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
22797 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA], 8, &(CAN_Msg[0]),
22798 delayTime);
22799 }
22800 }
22801
22802 /* End of Outputs for SubSystem: '<S983>/Std_OdometryData' */
22803
22804 /* S-Function (sfix_bitop): '<S977>/Operator' */
22805 L4_MABX_B.Operator_l5 = (uint8_T)(L4_MABX_B.DataTypeConversion_d3 &
22806 L4_MABX_P.Operator_BitMask_jyr);
22807
22808 /* DataTypeConversion: '<S977>/DataType' */
22809 L4_MABX_B.DataType_cj = L4_MABX_B.Operator_l5;
22810
22811 /* S-Function (sfix_bitop): '<S978>/Operator' */
22812 L4_MABX_B.Operator_nx = (uint8_T)(L4_MABX_B.DataTypeConversion_d3 &
22813 L4_MABX_P.Operator_BitMask_fn);
22814
22815 /* DataTypeConversion: '<S978>/DataType' */
22816 L4_MABX_B.DataType_j = L4_MABX_B.Operator_nx;
22817
22818 /* S-Function (sfix_bitop): '<S979>/Operator' */
22819 L4_MABX_B.Operator_jt = (uint8_T)(L4_MABX_B.DataTypeConversion_d3 &
22820 L4_MABX_P.Operator_BitMask_f3);
22821
22822 /* DataTypeConversion: '<S979>/DataType' */
22823 L4_MABX_B.DataType_m = L4_MABX_B.Operator_jt;
22824
22825 /* S-Function (sfix_bitop): '<S980>/Operator' */
22826 L4_MABX_B.Operator_jc = (uint8_T)(L4_MABX_B.DataTypeConversion_d3 &
22827 L4_MABX_P.Operator_BitMask_bj);
22828
22829 /* DataTypeConversion: '<S980>/DataType' */
22830 L4_MABX_B.DataType_p = L4_MABX_B.Operator_jc;
22831
22832 /* S-Function (sfix_bitop): '<S981>/Operator' */
22833 L4_MABX_B.Operator_l2 = (uint8_T)(L4_MABX_B.DataTypeConversion_d3 &
22834 L4_MABX_P.Operator_BitMask_om);
22835
22836 /* DataTypeConversion: '<S981>/DataType' */
22837 L4_MABX_B.DataType_pb = L4_MABX_B.Operator_l2;
22838
22839 /* DataTypeConversion: '<S968>/Data Type Conversion2' */
22840 L4_MABX_B.DataTypeConversion2_dx = (L4_MABX_B.DataType_cj != 0);
22841
22842 /* ArithShift: '<S968>/Shift_Arithmetic ' */
22843 L4_MABX_B.Shift_Arithmetic = ldexp(L4_MABX_B.DataType_j, (-1));
22844
22845 /* DataTypeConversion: '<S968>/Data Type Conversion3' */
22846 L4_MABX_B.DataTypeConversion3_dg = (L4_MABX_B.Shift_Arithmetic != 0.0);
22847
22848 /* ArithShift: '<S968>/Shift_Arithmetic 1' */
22849 L4_MABX_B.Shift_Arithmetic1 = ldexp(L4_MABX_B.DataType_m, (-2));
22850
22851 /* DataTypeConversion: '<S968>/Data Type Conversion4' */
22852 L4_MABX_B.DataTypeConversion4_k5 = (L4_MABX_B.Shift_Arithmetic1 != 0.0);
22853
22854 /* ArithShift: '<S968>/Shift_Arithmetic 2' */
22855 L4_MABX_B.Shift_Arithmetic2 = ldexp(L4_MABX_B.DataType_p, (-3));
22856
22857 /* DataTypeConversion: '<S968>/Data Type Conversion5' */
22858 L4_MABX_B.DataTypeConversion5_ph = (L4_MABX_B.Shift_Arithmetic2 != 0.0);
22859
22860 /* ArithShift: '<S968>/Shift_Arithmetic 3' */
22861 L4_MABX_B.Shift_Arithmetic3 = ldexp(L4_MABX_B.DataType_pb, (-4));
22862
22863 /* DataTypeConversion: '<S968>/Data Type Conversion6' */
22864 L4_MABX_B.DataTypeConversion6_pf = (L4_MABX_B.Shift_Arithmetic3 != 0.0);
22865
22866 /* RelationalOperator: '<S991>/Operator' */
22867 L4_MABX_B.Operator_ijm = (L4_MABX_B.Switch1_h == L4_MABX_B.Width_a);
22868
22869 /* Lookup_n-D: '<S970>/DECEL_GOV_XBR_URGENCY_MPV' */
22870 L4_MABX_B.XBRUrgency = look1_binlcapw(L4_MABX_B.XBRExternalAccelDemand,
22871 L4_MABX_P.DECEL_GOV_XBR_URGENCY_MPV_bp01D,
22872 L4_MABX_P.DECEL_GOV_XBR_URGENCY_MPV_table, 7U);
22873
22874 /* End of Outputs for SubSystem: '<S804>/CAN_TX_20ms' */
22875
22876 /* Outputs for Atomic SubSystem: '<S65>/Task_20ms' */
22877 /* RelationalOperator: '<S382>/CheckHDOP' incorporates:
22878 * Constant: '<S382>/MaximumGoodHDOP'
22879 */
22880 L4_MABX_B.CheckHDOP = (L4_MABX_B.HDOP__f1 <= L4_MABX_P.MaximumGoodHDOP_Value);
22881
22882 /* Gain: '<S382>/kph2mps' */
22883 L4_MABX_B.kph2mps = L4_MABX_P.kph2mps_Gain_l * L4_MABX_B.FrontAxleSpeed_d;
22884
22885 /* Product: '<S382>/Product' incorporates:
22886 * Constant: '<S382>/lookAheadTime'
22887 */
22888 L4_MABX_B.Product_c = L4_MABX_B.kph2mps * L4_MABX_P.lookAheadTime_Value;
22889
22890 /* Gain: '<S382>/kph2mps1' */
22891 L4_MABX_B.kph2mps1 = L4_MABX_P.kph2mps1_Gain * L4_MABX_B.FrontAxleSpeed_dv;
22892
22893 /* Product: '<S382>/Product1' incorporates:
22894 * Constant: '<S382>/lookAheadTime1'
22895 */
22896 L4_MABX_B.Product1_h = L4_MABX_B.kph2mps1 * L4_MABX_P.lookAheadTime1_Value;
22897
22898 /* UnitDelay: '<S382>/Unit Delay1' */
22899 L4_MABX_B.UnitDelay1 = L4_MABX_DW.UnitDelay1_DSTATE;
22900
22901 /* Constant: '<S383>/InitialHeading' */
22902 L4_MABX_B.InitialHeading = L4_MABX_P.InitialHeading_Value;
22903
22904 /* Constant: '<S383>/InitialPosition' */
22905 L4_MABX_B.InitialPosition = L4_MABX_P.InitialPosition_Value;
22906
22907 /* Constant: '<S383>/InitialXPosition' */
22908 L4_MABX_B.InitialXPosition = L4_MABX_P.InitialXPosition_Value;
22909
22910 /* Constant: '<S383>/InitialYPosition' */
22911 L4_MABX_B.InitialYPosition = L4_MABX_P.InitialYPosition_Value;
22912
22913 /* Gain: '<S71>/kph2ms' */
22914 L4_MABX_B.kph2ms = L4_MABX_P.kph2ms_Gain * L4_MABX_B.FrontAxleSpeed_dvq;
22915
22916 /* DiscreteIntegrator: '<S383>/LongitudnalPosition' incorporates:
22917 * Constant: '<S382>/Constant'
22918 */
22919 if ((L4_MABX_P.Constant_Value_p > 0.0) &&
22920 (L4_MABX_DW.LongitudnalPosition_PrevResetSt <= 0)) {
22921 L4_MABX_DW.LongitudnalPosition_DSTATE = L4_MABX_B.InitialPosition;
22922 }
22923
22924 L4_MABX_B.LongitudnalPosition = L4_MABX_P.LongitudnalPosition_gainval *
22925 L4_MABX_B.kph2ms + L4_MABX_DW.LongitudnalPosition_DSTATE;
22926
22927 /* End of DiscreteIntegrator: '<S383>/LongitudnalPosition' */
22928
22929 /* Trigonometry: '<S383>/Trigonometric Function' */
22930 L4_MABX_B.TrigonometricFunction = sin(L4_MABX_B.kph2ms);
22931
22932 /* Trigonometry: '<S383>/Trigonometric Function1' */
22933 L4_MABX_B.TrigonometricFunction1 = cos(L4_MABX_B.kph2ms);
22934
22935 /* DiscreteIntegrator: '<S383>/VehHeading' incorporates:
22936 * Constant: '<S383>/reset'
22937 */
22938 if ((L4_MABX_P.reset_Value > 0.0) && (L4_MABX_DW.VehHeading_PrevResetState <=
22939 0)) {
22940 L4_MABX_DW.VehHeading_DSTATE = L4_MABX_B.InitialHeading;
22941 }
22942
22943 L4_MABX_B.VehHeading = L4_MABX_P.VehHeading_gainval *
22944 L4_MABX_B.TmpRTBAtVehHeadingInport1 + L4_MABX_DW.VehHeading_DSTATE;
22945
22946 /* End of DiscreteIntegrator: '<S383>/VehHeading' */
22947
22948 /* DiscreteIntegrator: '<S383>/XPosition' incorporates:
22949 * Constant: '<S383>/reset'
22950 */
22951 if ((L4_MABX_P.reset_Value > 0.0) && (L4_MABX_DW.XPosition_PrevResetState <= 0))
22952 {
22953 L4_MABX_DW.XPosition_DSTATE = L4_MABX_B.InitialXPosition;
22954 }
22955
22956 L4_MABX_B.XPosition = L4_MABX_P.XPosition_gainval *
22957 L4_MABX_B.TrigonometricFunction1 + L4_MABX_DW.XPosition_DSTATE;
22958
22959 /* End of DiscreteIntegrator: '<S383>/XPosition' */
22960
22961 /* DiscreteIntegrator: '<S383>/YPosition' incorporates:
22962 * Constant: '<S383>/reset'
22963 */
22964 if ((L4_MABX_P.reset_Value > 0.0) && (L4_MABX_DW.YPosition_PrevResetState <= 0))
22965 {
22966 L4_MABX_DW.YPosition_DSTATE = L4_MABX_B.InitialYPosition;
22967 }
22968
22969 L4_MABX_B.YPosition = L4_MABX_P.YPosition_gainval *
22970 L4_MABX_B.TrigonometricFunction + L4_MABX_DW.YPosition_DSTATE;
22971
22972 /* End of DiscreteIntegrator: '<S383>/YPosition' */
22973 /* End of Outputs for SubSystem: '<S65>/Task_20ms' */
22974
22975 /* UnitDelay: '<S3>/Unit_Delay' */
22976 L4_MABX_B.S = L4_MABX_DW.Unit_Delay_48_DSTATE;
22977 L4_MABX_B.B = L4_MABX_DW.Unit_Delay_49_DSTATE;
22978 L4_MABX_B.X = L4_MABX_DW.Unit_Delay_50_DSTATE;
22979 L4_MABX_B.Y = L4_MABX_DW.Unit_Delay_51_DSTATE;
22980 L4_MABX_B.pathCurveOffset = L4_MABX_DW.Unit_Delay_52_DSTATE;
22981 L4_MABX_B.S_k = L4_MABX_DW.Unit_Delay_53_DSTATE;
22982 L4_MABX_B.distanceSpdTarget = L4_MABX_DW.Unit_Delay_54_DSTATE;
22983 L4_MABX_B.state = L4_MABX_DW.Unit_Delay_55_DSTATE;
22984 L4_MABX_B.lastWayPointIdx = L4_MABX_DW.Unit_Delay_56_DSTATE;
22985 L4_MABX_B.crossed = L4_MABX_DW.Unit_Delay_57_DSTATE;
22986 L4_MABX_B.minimumDist = L4_MABX_DW.Unit_Delay_58_DSTATE;
22987 L4_MABX_B.SrefOnthisPath = L4_MABX_DW.Unit_Delay_59_DSTATE;
22988 L4_MABX_B.StartDist = L4_MABX_DW.Unit_Delay_60_DSTATE;
22989 L4_MABX_B.minDistIdx = L4_MABX_DW.Unit_Delay_61_DSTATE;
22990 L4_MABX_B.pathS = L4_MABX_DW.Unit_Delay_62_DSTATE;
22991 L4_MABX_B.pathLat = L4_MABX_DW.Unit_Delay_63_DSTATE;
22992 L4_MABX_B.pathLong = L4_MABX_DW.Unit_Delay_64_DSTATE;
22993 L4_MABX_B.pathSteeringAngle = L4_MABX_DW.Unit_Delay_65_DSTATE;
22994 L4_MABX_B.pathSpdLimit = L4_MABX_DW.Unit_Delay_66_DSTATE;
22995 L4_MABX_B.distance = L4_MABX_DW.Unit_Delay_67_DSTATE;
22996 L4_MABX_B.idx = L4_MABX_DW.Unit_Delay_68_DSTATE;
22997 L4_MABX_B.wpidx = L4_MABX_DW.Unit_Delay_69_DSTATE;
22998 L4_MABX_B.pathOffset = L4_MABX_DW.Unit_Delay_70_DSTATE;
22999 L4_MABX_B.sRefDistance = L4_MABX_DW.Unit_Delay_71_DSTATE;
23000 L4_MABX_B.refDistance = L4_MABX_DW.Unit_Delay_72_DSTATE;
23001 L4_MABX_B.wpIdx = L4_MABX_DW.Unit_Delay_73_DSTATE;
23002 L4_MABX_B.previewSteeringAngle_a = L4_MABX_DW.Unit_Delay_74_DSTATE;
23003 L4_MABX_B.desHeading = L4_MABX_DW.Unit_Delay_75_DSTATE;
23004 L4_MABX_B.actPreviewDist = L4_MABX_DW.Unit_Delay_76_DSTATE;
23005 L4_MABX_B.desPreviewDist = L4_MABX_DW.Unit_Delay_77_DSTATE;
23006 L4_MABX_B.mappingSearchCase = L4_MABX_DW.Unit_Delay_78_DSTATE;
23007
23008 /* user code (Output function Trailer for TID1) */
23009
23010 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
23011 /* EventChannel: 0 */
23012 if (tid == 0) {
23013 DSXCP_service(0);
23014 }
23015
23016 /* If subsystem generates rate grouping Output functions,
23017 * when tid is used in Output function for one rate,
23018 * all Output functions include tid as a local variable.
23019 * As result, some Output functions may have unused tid.
23020 */
23021 UNUSED_PARAMETER(tid);
23022}
23023
23024/* Model update function for TID1 */
23025void L4_MABX_update1(void) /* Sample time: [0.02s, 0.0s] */
23026{
23027 /* Update for Atomic SubSystem: '<S65>/Task_10ms' */
23028 /* Update for RateTransition: '<S81>/TmpRTBAtSignal Conversion1Inport1' incorporates:
23029 * Constant: '<S382>/Constant2'
23030 */
23031 L4_MABX_DW.TmpRTBAtSignalConversion1Inport = L4_MABX_P.Constant2_Value_a;
23032
23033 /* Update for RateTransition: '<S81>/TmpRTBAtSignal Conversion3Inport1' incorporates:
23034 * Constant: '<S382>/Constant13'
23035 */
23036 L4_MABX_DW.TmpRTBAtSignalConversion3Inport = L4_MABX_P.Constant13_Value;
23037
23038 /* Update for RateTransition: '<S81>/TmpRTBAtSignal Conversion2Inport1' incorporates:
23039 * Constant: '<S382>/Constant14'
23040 */
23041 L4_MABX_DW.TmpRTBAtSignalConversion2Inport = L4_MABX_P.Constant14_Value;
23042
23043 /* Update for RateTransition: '<S80>/TmpRTBAtrad2deg1Inport1' incorporates:
23044 * Constant: '<S382>/Constant17'
23045 */
23046 L4_MABX_DW.TmpRTBAtrad2deg1Inport1_Buffer0 = L4_MABX_P.Constant17_Value;
23047
23048 /* Update for RateTransition: '<S80>/TmpRTBAtsignCurveOffsetInport1' incorporates:
23049 * Constant: '<S382>/Constant1'
23050 */
23051 L4_MABX_DW.TmpRTBAtsignCurveOffsetInport1_ = L4_MABX_P.Constant1_Value_g;
23052
23053 /* Update for RateTransition: '<S277>/TmpRTBAtAdd2Inport2' incorporates:
23054 * Constant: '<S382>/Constant18'
23055 */
23056 L4_MABX_DW.TmpRTBAtAdd2Inport2_Buffer0 = L4_MABX_P.Constant18_Value;
23057
23058 /* End of Update for SubSystem: '<S65>/Task_10ms' */
23059
23060 /* Update for Atomic SubSystem: '<S804>/CAN_TX_20ms' */
23061
23062 /* Update for UnitDelay: '<S966>/Unit_Delay' */
23063 L4_MABX_DW.Unit_Delay_DSTATE_mz = L4_MABX_B.TmpRTBAtUnit_DelayInport1;
23064
23065 /* Update for UnitDelay: '<S989>/Unit_Delay' */
23066 L4_MABX_DW.Unit_Delay_DSTATE_ju = L4_MABX_B.Operator_ijm;
23067
23068 /* Update for UnitDelay: '<S990>/Unit Delay' */
23069 L4_MABX_DW.UnitDelay_DSTATE_j = L4_MABX_B.Switch1_h;
23070
23071 /* End of Update for SubSystem: '<S804>/CAN_TX_20ms' */
23072
23073 /* Update for Atomic SubSystem: '<S65>/Task_20ms' */
23074 /* Update for UnitDelay: '<S382>/Unit Delay1' */
23075 L4_MABX_DW.UnitDelay1_DSTATE = L4_MABX_B.LongitudnalPosition;
23076
23077 /* Update for DiscreteIntegrator: '<S383>/LongitudnalPosition' incorporates:
23078 * Constant: '<S382>/Constant'
23079 */
23080 L4_MABX_DW.LongitudnalPosition_DSTATE = L4_MABX_P.LongitudnalPosition_gainval *
23081 L4_MABX_B.kph2ms + L4_MABX_B.LongitudnalPosition;
23082 if (L4_MABX_P.Constant_Value_p > 0.0) {
23083 L4_MABX_DW.LongitudnalPosition_PrevResetSt = 1;
23084 } else if (L4_MABX_P.Constant_Value_p < 0.0) {
23085 L4_MABX_DW.LongitudnalPosition_PrevResetSt = -1;
23086 } else if (L4_MABX_P.Constant_Value_p == 0.0) {
23087 L4_MABX_DW.LongitudnalPosition_PrevResetSt = 0;
23088 } else {
23089 L4_MABX_DW.LongitudnalPosition_PrevResetSt = 2;
23090 }
23091
23092 /* End of Update for DiscreteIntegrator: '<S383>/LongitudnalPosition' */
23093
23094 /* Update for DiscreteIntegrator: '<S383>/VehHeading' incorporates:
23095 * Constant: '<S383>/reset'
23096 * DiscreteIntegrator: '<S383>/XPosition'
23097 */
23098 L4_MABX_DW.VehHeading_DSTATE = L4_MABX_P.VehHeading_gainval *
23099 L4_MABX_B.TmpRTBAtVehHeadingInport1 + L4_MABX_B.VehHeading;
23100 if (L4_MABX_P.reset_Value > 0.0) {
23101 L4_MABX_DW.VehHeading_PrevResetState = 1;
23102 L4_MABX_DW.XPosition_PrevResetState = 1;
23103 } else {
23104 if (L4_MABX_P.reset_Value < 0.0) {
23105 L4_MABX_DW.VehHeading_PrevResetState = -1;
23106 } else if (L4_MABX_P.reset_Value == 0.0) {
23107 L4_MABX_DW.VehHeading_PrevResetState = 0;
23108 } else {
23109 L4_MABX_DW.VehHeading_PrevResetState = 2;
23110 }
23111
23112 if (L4_MABX_P.reset_Value < 0.0) {
23113 L4_MABX_DW.XPosition_PrevResetState = -1;
23114 } else if (L4_MABX_P.reset_Value == 0.0) {
23115 L4_MABX_DW.XPosition_PrevResetState = 0;
23116 } else {
23117 L4_MABX_DW.XPosition_PrevResetState = 2;
23118 }
23119 }
23120
23121 /* End of Update for DiscreteIntegrator: '<S383>/VehHeading' */
23122
23123 /* Update for DiscreteIntegrator: '<S383>/XPosition' */
23124 L4_MABX_DW.XPosition_DSTATE = L4_MABX_P.XPosition_gainval *
23125 L4_MABX_B.TrigonometricFunction1 + L4_MABX_B.XPosition;
23126
23127 /* Update for DiscreteIntegrator: '<S383>/YPosition' incorporates:
23128 * Constant: '<S383>/reset'
23129 */
23130 L4_MABX_DW.YPosition_DSTATE = L4_MABX_P.YPosition_gainval *
23131 L4_MABX_B.TrigonometricFunction + L4_MABX_B.YPosition;
23132 if (L4_MABX_P.reset_Value > 0.0) {
23133 L4_MABX_DW.YPosition_PrevResetState = 1;
23134 } else if (L4_MABX_P.reset_Value < 0.0) {
23135 L4_MABX_DW.YPosition_PrevResetState = -1;
23136 } else if (L4_MABX_P.reset_Value == 0.0) {
23137 L4_MABX_DW.YPosition_PrevResetState = 0;
23138 } else {
23139 L4_MABX_DW.YPosition_PrevResetState = 2;
23140 }
23141
23142 /* End of Update for DiscreteIntegrator: '<S383>/YPosition' */
23143 /* End of Update for SubSystem: '<S65>/Task_20ms' */
23144
23145 /* Update for UnitDelay: '<S3>/Unit_Delay' incorporates:
23146 * Constant: '<S382>/Constant1'
23147 * Constant: '<S382>/Constant10'
23148 * Constant: '<S382>/Constant11'
23149 * Constant: '<S382>/Constant12'
23150 * Constant: '<S382>/Constant13'
23151 * Constant: '<S382>/Constant14'
23152 * Constant: '<S382>/Constant15'
23153 * Constant: '<S382>/Constant16'
23154 * Constant: '<S382>/Constant17'
23155 * Constant: '<S382>/Constant18'
23156 * Constant: '<S382>/Constant19'
23157 * Constant: '<S382>/Constant2'
23158 * Constant: '<S382>/Constant20'
23159 * Constant: '<S382>/Constant21'
23160 * Constant: '<S382>/Constant22'
23161 * Constant: '<S382>/Constant23'
23162 * Constant: '<S382>/Constant24'
23163 * Constant: '<S382>/Constant25'
23164 * Constant: '<S382>/Constant3'
23165 * Constant: '<S382>/Constant4'
23166 * Constant: '<S382>/Constant5'
23167 * Constant: '<S382>/Constant6'
23168 * Constant: '<S382>/Constant7'
23169 * Constant: '<S382>/Constant8'
23170 * Constant: '<S382>/Constant9'
23171 */
23172 L4_MABX_DW.Unit_Delay_48_DSTATE = L4_MABX_B.LongitudnalPosition;
23173 L4_MABX_DW.Unit_Delay_49_DSTATE = L4_MABX_B.VehHeading;
23174 L4_MABX_DW.Unit_Delay_50_DSTATE = L4_MABX_B.XPosition;
23175 L4_MABX_DW.Unit_Delay_51_DSTATE = L4_MABX_B.YPosition;
23176 L4_MABX_DW.Unit_Delay_52_DSTATE = L4_MABX_P.Constant1_Value_g;
23177 L4_MABX_DW.Unit_Delay_53_DSTATE = L4_MABX_B.UnitDelay1;
23178 L4_MABX_DW.Unit_Delay_54_DSTATE = L4_MABX_P.Constant2_Value_a;
23179 L4_MABX_DW.Unit_Delay_55_DSTATE = L4_MABX_P.Constant3_Value_l;
23180 L4_MABX_DW.Unit_Delay_56_DSTATE = L4_MABX_P.Constant4_Value_m;
23181 L4_MABX_DW.Unit_Delay_57_DSTATE = L4_MABX_P.Constant5_Value_b;
23182 L4_MABX_DW.Unit_Delay_58_DSTATE = L4_MABX_P.Constant10_Value_h;
23183 L4_MABX_DW.Unit_Delay_59_DSTATE = L4_MABX_P.Constant25_Value;
23184 L4_MABX_DW.Unit_Delay_60_DSTATE = L4_MABX_P.Constant6_Value_e;
23185 L4_MABX_DW.Unit_Delay_61_DSTATE = L4_MABX_P.Constant7_Value;
23186 L4_MABX_DW.Unit_Delay_62_DSTATE = L4_MABX_P.Constant8_Value;
23187 L4_MABX_DW.Unit_Delay_63_DSTATE = L4_MABX_P.Constant9_Value_m;
23188 L4_MABX_DW.Unit_Delay_64_DSTATE = L4_MABX_P.Constant11_Value;
23189 L4_MABX_DW.Unit_Delay_65_DSTATE = L4_MABX_P.Constant12_Value;
23190 L4_MABX_DW.Unit_Delay_66_DSTATE = L4_MABX_P.Constant13_Value;
23191 L4_MABX_DW.Unit_Delay_67_DSTATE = L4_MABX_P.Constant14_Value;
23192 L4_MABX_DW.Unit_Delay_68_DSTATE = L4_MABX_P.Constant19_Value_m;
23193 L4_MABX_DW.Unit_Delay_69_DSTATE = L4_MABX_P.Constant16_Value;
23194 L4_MABX_DW.Unit_Delay_70_DSTATE = L4_MABX_P.Constant21_Value_g;
23195 L4_MABX_DW.Unit_Delay_71_DSTATE = L4_MABX_P.Constant22_Value;
23196 L4_MABX_DW.Unit_Delay_72_DSTATE = L4_MABX_P.Constant15_Value;
23197 L4_MABX_DW.Unit_Delay_73_DSTATE = L4_MABX_P.Constant20_Value_i;
23198 L4_MABX_DW.Unit_Delay_74_DSTATE = L4_MABX_P.Constant17_Value;
23199 L4_MABX_DW.Unit_Delay_75_DSTATE = L4_MABX_P.Constant18_Value;
23200 L4_MABX_DW.Unit_Delay_76_DSTATE = L4_MABX_P.Constant23_Value;
23201 L4_MABX_DW.Unit_Delay_77_DSTATE = L4_MABX_B.Product_c;
23202 L4_MABX_DW.Unit_Delay_78_DSTATE = L4_MABX_P.Constant24_Value;
23203}
23204
23205/* Model output function for TID2 */
23206void L4_MABX_output2(void) /* Sample time: [0.05s, 0.0s] */
23207{
23208 int_T tid = 2;
23209
23210 /* Outputs for Atomic SubSystem: '<S804>/CAN_TX_50ms' */
23211
23212 /* Outputs for Enabled SubSystem: '<S1009>/CCVS1_E3' incorporates:
23213 * EnablePort: '<S1011>/Enable'
23214 */
23215 /* Constant: '<S813>/enable_CAN_TX_CCVS1_CAN3' */
23216 if (L4_MABX_P.enable_CAN_TX_CCVS1_CAN3_Value > 0.0) {
23217 /* S-Function (rti_commonblock): '<S1011>/S-Function1' */
23218 /* This comment workarounds a code generation problem */
23219
23220 /* dSPACE RTICAN TX Message Block: "CCVS1_E3" Id:419361251 */
23221 {
23222 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
23223
23224 Float32 delayTime = 0.0;
23225
23226 /* ... Read status and timestamp info (previous message) */
23227 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]);
23228
23229 /* Convert timestamp */
23230 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->processed) {
23231 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->timestamp =
23232 rtk_dsts_time_to_simtime_convert
23233 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->timestamp);
23234 }
23235
23236 /* Messages with timestamp zero have been received in pause/stop state
23237 and must not be handled.
23238 */
23239 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->timestamp > 0.0) {
23240 L4_MABX_B.SFunction1_o1_k = (real_T)
23241 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->processed;
23242 L4_MABX_B.SFunction1_o2_fy = (real_T)
23243 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->timestamp;
23244 L4_MABX_B.SFunction1_o3_f = (real_T)
23245 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->deltatime;
23246 L4_MABX_B.SFunction1_o4_n = (real_T)
23247 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->delaytime;
23248 }
23249
23250 /* ... Encode Simulink signals of TX and RM blocks*/
23251 {
23252 rtican_Signal_t CAN_Sgn;
23253
23254 /* ...... "SPN69_TwoSpeedAxleSwitch" (0|2, standard signal, unsigned int, little endian) */
23255 /* Add or substract 0.5 in order to round to nearest integer */
23256 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.TwoSpeedAxleSwitch ) + 0.5);
23257 CAN_Sgn.UnsignedSgn &= 0x00000003;
23258 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23259
23260 /* ...... "SPN70_ParkingBrakeSwitch" (2|2, standard signal, unsigned int, little endian) */
23261 /* Add or substract 0.5 in order to round to nearest integer */
23262 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkingBrakeSwitch ) + 0.5);
23263 CAN_Sgn.UnsignedSgn &= 0x00000003;
23264 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
23265 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23266
23267 /* ...... "SPN1633_CruiseControlPauseSwitch" (4|2, standard signal, unsigned int, little endian) */
23268 /* Add or substract 0.5 in order to round to nearest integer */
23269 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlPauseSwitch ) +
23270 0.5);
23271 CAN_Sgn.UnsignedSgn &= 0x00000003;
23272 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
23273 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23274
23275 /* ...... "SPN3807_ParkBrakeReleaseInhReq" (6|2, standard signal, unsigned int, little endian) */
23276 /* Add or substract 0.5 in order to round to nearest integer */
23277 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkBrakeReleaseInhibitRq )
23278 + 0.5);
23279 CAN_Sgn.UnsignedSgn &= 0x00000003;
23280 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
23281 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23282
23283 /* ...... "SPN84_WheelBasedVehicleSpeed" (8|16, standard signal, unsigned int, little endian) */
23284 /* Add or substract 0.5 in order to round to nearest integer */
23285 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.WheelBasedVehicleSpeed_j - (
23286 0 ) ) / 0.00390625 + 0.5);
23287 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
23288 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
23289 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte1;
23290
23291 /* ...... "SPN595_CruiseControlActive" (24|2, standard signal, unsigned int, little endian) */
23292 /* Add or substract 0.5 in order to round to nearest integer */
23293 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlActive ) + 0.5);
23294 CAN_Sgn.UnsignedSgn &= 0x00000003;
23295 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23296
23297 /* ...... "SPN596_CruiseControlEnableSwitch" (26|2, standard signal, unsigned int, little endian) */
23298 /* Add or substract 0.5 in order to round to nearest integer */
23299 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlEnableSwitch_c ) +
23300 0.5);
23301 CAN_Sgn.UnsignedSgn &= 0x00000003;
23302 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
23303 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23304
23305 /* ...... "SPN597_BrakeSwitch" (28|2, standard signal, unsigned int, little endian) */
23306 /* Add or substract 0.5 in order to round to nearest integer */
23307 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.BrakeSwitch_d ) + 0.5);
23308 CAN_Sgn.UnsignedSgn &= 0x00000003;
23309 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
23310 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23311
23312 /* ...... "SPN598_ClutchSwitch" (30|2, standard signal, unsigned int, little endian) */
23313 /* Add or substract 0.5 in order to round to nearest integer */
23314 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ClutchSwitch ) + 0.5);
23315 CAN_Sgn.UnsignedSgn &= 0x00000003;
23316 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
23317 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23318
23319 /* ...... "SPN599_CruiseControlSetSwitch" (32|2, standard signal, unsigned int, little endian) */
23320 /* Add or substract 0.5 in order to round to nearest integer */
23321 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSwitch ) + 0.5);
23322 CAN_Sgn.UnsignedSgn &= 0x00000003;
23323 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
23324
23325 /* ...... "SPN600_CruiseControlCoastDecelSw" (34|2, standard signal, unsigned int, little endian) */
23326 /* Add or substract 0.5 in order to round to nearest integer */
23327 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlCoastSwitch ) +
23328 0.5);
23329 CAN_Sgn.UnsignedSgn &= 0x00000003;
23330 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
23331 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
23332
23333 /* ...... "SPN601_CruiseControlResumeSwitch" (36|2, standard signal, unsigned int, little endian) */
23334 /* Add or substract 0.5 in order to round to nearest integer */
23335 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlResumeSwitch ) +
23336 0.5);
23337 CAN_Sgn.UnsignedSgn &= 0x00000003;
23338 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
23339 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
23340
23341 /* ...... "SPN602_CruiseControlAccelerateSw" (38|2, standard signal, unsigned int, little endian) */
23342 /* Add or substract 0.5 in order to round to nearest integer */
23343 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlAccelerateSwitch )
23344 + 0.5);
23345 CAN_Sgn.UnsignedSgn &= 0x00000003;
23346 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
23347 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
23348
23349 /* ...... "SPN86_CruiseControlSetSpeed" (40|8, standard signal, unsigned int, little endian) */
23350 /* Add or substract 0.5 in order to round to nearest integer */
23351 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSpeed ) + 0.5);
23352 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23353 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
23354
23355 /* ...... "SPN976_PTOGovernorState" (48|5, standard signal, unsigned int, little endian) */
23356 /* Add or substract 0.5 in order to round to nearest integer */
23357 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.PTOGovernorState ) + 0.5);
23358 CAN_Sgn.UnsignedSgn &= 0x0000001F;
23359 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
23360
23361 /* ...... "SPN527_CruiseControlStates" (53|3, standard signal, unsigned int, little endian) */
23362 /* Add or substract 0.5 in order to round to nearest integer */
23363 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlStates ) + 0.5);
23364 CAN_Sgn.UnsignedSgn &= 0x00000007;
23365 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 5;
23366 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
23367
23368 /* ...... "SPN968_EngIdleIncrementSw" (56|2, standard signal, unsigned int, little endian) */
23369 /* Add or substract 0.5 in order to round to nearest integer */
23370 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleIncrementSwitch ) +
23371 0.5);
23372 CAN_Sgn.UnsignedSgn &= 0x00000003;
23373 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
23374
23375 /* ...... "SPN967_EngIdleDecrementSwitch" (58|2, standard signal, unsigned int, little endian) */
23376 /* Add or substract 0.5 in order to round to nearest integer */
23377 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleDecrementSwitch ) +
23378 0.5);
23379 CAN_Sgn.UnsignedSgn &= 0x00000003;
23380 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
23381 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
23382
23383 /* ...... "SPN966_EngDiagTestModeSwitch" (60|2, standard signal, unsigned int, little endian) */
23384 /* Add or substract 0.5 in order to round to nearest integer */
23385 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngTestModeSwitch ) + 0.5);
23386 CAN_Sgn.UnsignedSgn &= 0x00000003;
23387 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
23388 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
23389
23390 /* ...... "SPN1237_EngShutdownOvrdSwitch" (62|2, standard signal, unsigned int, little endian) */
23391 /* Add or substract 0.5 in order to round to nearest integer */
23392 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngShutdownOverrideSwitch )
23393 + 0.5);
23394 CAN_Sgn.UnsignedSgn &= 0x00000003;
23395 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
23396 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
23397 }
23398
23399 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
23400 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3], 8,
23401 &(CAN_Msg[0]), delayTime);
23402 }
23403 }
23404
23405 /* End of Constant: '<S813>/enable_CAN_TX_CCVS1_CAN3' */
23406 /* End of Outputs for SubSystem: '<S1009>/CCVS1_E3' */
23407
23408 /* Outputs for Enabled SubSystem: '<S1010>/TC1_03_05' incorporates:
23409 * EnablePort: '<S1012>/Enable'
23410 */
23411 /* Constant: '<S1010>/CANT_TC1_03_05_APV' */
23412 if (L4_MABX_P.CANT_TC1_03_05_APV_Value) {
23413 /* S-Function (rti_commonblock): '<S1012>/S-Function1' */
23414 /* This comment workarounds a code generation problem */
23415
23416 /* dSPACE RTICAN TX Message Block: "TC1_03_05" Id:201392901 */
23417 {
23418 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
23419
23420 Float32 delayTime = 0.0;
23421
23422 /* ... Read status and timestamp info (previous message) */
23423 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]);
23424
23425 /* Convert timestamp */
23426 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->processed) {
23427 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->timestamp =
23428 rtk_dsts_time_to_simtime_convert
23429 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->timestamp);
23430 }
23431
23432 /* Messages with timestamp zero have been received in pause/stop state
23433 and must not be handled.
23434 */
23435 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->timestamp > 0.0) {
23436 L4_MABX_B.SFunction1_o1_o = (real_T)
23437 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->processed;
23438 L4_MABX_B.SFunction1_o2_a = (real_T)
23439 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->timestamp;
23440 L4_MABX_B.SFunction1_o3_l = (real_T)
23441 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->deltatime;
23442 L4_MABX_B.SFunction1_o4_e = (real_T)
23443 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->delaytime;
23444 }
23445
23446 /* ... Encode Simulink signals of TX and RM blocks*/
23447 {
23448 rtican_Signal_t CAN_Sgn;
23449
23450 /* ...... "SPN681_TransGearShiftInhibitReq" (0|2, standard signal, unsigned int, little endian) */
23451 /* Add or substract 0.5 in order to round to nearest integer */
23452 CAN_Sgn.UnsignedSgn = (UInt32)
23453 (( L4_MABX_B.SPN681_TransGearShiftInhibitReq ) + 0.5);
23454 CAN_Sgn.UnsignedSgn &= 0x00000003;
23455 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23456
23457 /* ...... "SPN682_TransTrqConvLockupDisReq" (2|2, standard signal, unsigned int, little endian) */
23458 /* Add or substract 0.5 in order to round to nearest integer */
23459 CAN_Sgn.UnsignedSgn = (UInt32)
23460 (( L4_MABX_B.SPN682_TransTrqConvLockupDisReq ) + 0.5);
23461 CAN_Sgn.UnsignedSgn &= 0x00000003;
23462 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
23463 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23464
23465 /* ...... "SPN683_DisengageDrivelineReq" (4|2, standard signal, unsigned int, little endian) */
23466 /* Add or substract 0.5 in order to round to nearest integer */
23467 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN683_DisengageDrivelineReq
23468 ) + 0.5);
23469 CAN_Sgn.UnsignedSgn &= 0x00000003;
23470 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
23471 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23472
23473 /* ...... "SPN4242_TransRevGearShiftInhibRq" (6|2, standard signal, unsigned int, little endian) */
23474 /* Add or substract 0.5 in order to round to nearest integer */
23475 CAN_Sgn.UnsignedSgn = (UInt32)
23476 (( L4_MABX_B.SPN4242_TransRevGearShiftInhibR ) + 0.5);
23477 CAN_Sgn.UnsignedSgn &= 0x00000003;
23478 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
23479 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23480
23481 /* ...... "SPN684_RequestedPercClutchSlip" (8|8, standard signal, unsigned int, little endian) */
23482 /* Add or substract 0.5 in order to round to nearest integer */
23483 CAN_Sgn.UnsignedSgn = (UInt32)
23484 (( L4_MABX_B.SPN684_RequestedPercClutchSlip - ( 0 ) ) / 0.4 + 0.5);
23485 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23486 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
23487
23488 /* ...... "SPN525_TransRequestedGear" (16|8, standard signal, unsigned int, little endian) */
23489 /* Add or substract 0.5 in order to round to nearest integer */
23490 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.SPN525_TransRequestedGear - (
23491 -125 ) + 0.5);
23492 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23493 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
23494
23495 /* ...... "SPN685_DisengageDiffLockRqFrAx1" (24|2, standard signal, unsigned int, little endian) */
23496 /* Add or substract 0.5 in order to round to nearest integer */
23497 CAN_Sgn.UnsignedSgn = (UInt32)
23498 (( L4_MABX_B.SPN685_DisengageDiffLockRqFrAx1 ) + 0.5);
23499 CAN_Sgn.UnsignedSgn &= 0x00000003;
23500 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23501
23502 /* ...... "SPN686_DisengageDiffLockRqFrAx2" (26|2, standard signal, unsigned int, little endian) */
23503 /* Add or substract 0.5 in order to round to nearest integer */
23504 CAN_Sgn.UnsignedSgn = (UInt32)
23505 (( L4_MABX_B.SPN686_DisengageDiffLockRqFrAx2 ) + 0.5);
23506 CAN_Sgn.UnsignedSgn &= 0x00000003;
23507 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
23508 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23509
23510 /* ...... "SPN687_DisengageDiffLockRqRrAx1" (28|2, standard signal, unsigned int, little endian) */
23511 /* Add or substract 0.5 in order to round to nearest integer */
23512 CAN_Sgn.UnsignedSgn = (UInt32)
23513 (( L4_MABX_B.SPN687_DisengageDiffLockRqRrAx1 ) + 0.5);
23514 CAN_Sgn.UnsignedSgn &= 0x00000003;
23515 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
23516 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23517
23518 /* ...... "SPN688_DisengageDiffLockRqRrAx2" (30|2, standard signal, unsigned int, little endian) */
23519 /* Add or substract 0.5 in order to round to nearest integer */
23520 CAN_Sgn.UnsignedSgn = (UInt32)
23521 (( L4_MABX_B.SPN688_DisengageDiffLockRqRrAx2 ) + 0.5);
23522 CAN_Sgn.UnsignedSgn &= 0x00000003;
23523 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
23524 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23525
23526 /* ...... "SPN689_DisengageDiffLockRqC" (32|2, standard signal, unsigned int, little endian) */
23527 /* Add or substract 0.5 in order to round to nearest integer */
23528 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN689_DisengageDiffLockRqC )
23529 + 0.5);
23530 CAN_Sgn.UnsignedSgn &= 0x00000003;
23531 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
23532
23533 /* ...... "SPN690_DisengageDiffLockRqCF" (34|2, standard signal, unsigned int, little endian) */
23534 /* Add or substract 0.5 in order to round to nearest integer */
23535 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN690_DisengageDiffLockRqCF
23536 ) + 0.5);
23537 CAN_Sgn.UnsignedSgn &= 0x00000003;
23538 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
23539 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
23540
23541 /* ...... "SPN691_DisengageDiffLockRqCR" (36|2, standard signal, unsigned int, little endian) */
23542 /* Add or substract 0.5 in order to round to nearest integer */
23543 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN691_DisengageDiffLockRqCR
23544 ) + 0.5);
23545 CAN_Sgn.UnsignedSgn &= 0x00000003;
23546 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
23547 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
23548
23549 /* ...... "SPN5762_TransLoadRedInhibitRq" (38|2, standard signal, unsigned int, little endian) */
23550 /* Add or substract 0.5 in order to round to nearest integer */
23551 CAN_Sgn.UnsignedSgn = (UInt32)
23552 (( L4_MABX_B.SPN5762_TransLoadRedInhibitRq ) + 0.5);
23553 CAN_Sgn.UnsignedSgn &= 0x00000003;
23554 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
23555 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
23556
23557 /* ...... "SPN1852_TransmissionMode1" (40|2, standard signal, unsigned int, little endian) */
23558 /* Add or substract 0.5 in order to round to nearest integer */
23559 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN1852_TransmissionMode1 )
23560 + 0.5);
23561 CAN_Sgn.UnsignedSgn &= 0x00000003;
23562 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
23563
23564 /* ...... "SPN1853_TransmissionMode2" (42|2, standard signal, unsigned int, little endian) */
23565 /* Add or substract 0.5 in order to round to nearest integer */
23566 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN1853_TransmissionMode2 )
23567 + 0.5);
23568 CAN_Sgn.UnsignedSgn &= 0x00000003;
23569 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
23570 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
23571
23572 /* ...... "SPN1854_TransmissionMode3" (44|2, standard signal, unsigned int, little endian) */
23573 /* Add or substract 0.5 in order to round to nearest integer */
23574 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN1854_TransmissionMode3 )
23575 + 0.5);
23576 CAN_Sgn.UnsignedSgn &= 0x00000003;
23577 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
23578 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
23579
23580 /* ...... "SPN1855_TransmissionMode4" (46|2, standard signal, unsigned int, little endian) */
23581 /* Add or substract 0.5 in order to round to nearest integer */
23582 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN1855_TransmissionMode4 )
23583 + 0.5);
23584 CAN_Sgn.UnsignedSgn &= 0x00000003;
23585 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
23586 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
23587
23588 /* ...... "SPN7695_TransAutoNeutralRequest" (48|2, standard signal, unsigned int, little endian) */
23589 /* Add or substract 0.5 in order to round to nearest integer */
23590 CAN_Sgn.UnsignedSgn = (UInt32)
23591 (( L4_MABX_B.SPN7695_TransAutoNeutralRequest ) + 0.5);
23592 CAN_Sgn.UnsignedSgn &= 0x00000003;
23593 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
23594
23595 /* ...... "SPN4255_TransRequestedLaunchGear" (50|4, standard signal, unsigned int, little endian) */
23596 /* Add or substract 0.5 in order to round to nearest integer */
23597 CAN_Sgn.UnsignedSgn = (UInt32)
23598 (( L4_MABX_B.SPN4255_TransRequestedLaunchGea ) + 0.5);
23599 CAN_Sgn.UnsignedSgn &= 0x0000000F;
23600 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
23601 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
23602
23603 /* ...... "SPN2985_TransShiftSelDispModeSw" (54|2, standard signal, unsigned int, little endian) */
23604 /* Add or substract 0.5 in order to round to nearest integer */
23605 CAN_Sgn.UnsignedSgn = (UInt32)
23606 (( L4_MABX_B.SPN2985_TransShiftSelDispModeSw ) + 0.5);
23607 CAN_Sgn.UnsignedSgn &= 0x00000003;
23608 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
23609 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
23610
23611 /* ...... "SPN4246_TransmissionMode5" (56|2, standard signal, unsigned int, little endian) */
23612 /* Add or substract 0.5 in order to round to nearest integer */
23613 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN4246_TransmissionMode5 )
23614 + 0.5);
23615 CAN_Sgn.UnsignedSgn &= 0x00000003;
23616 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
23617
23618 /* ...... "SPN4247_TransmissionMode6" (58|2, standard signal, unsigned int, little endian) */
23619 /* Add or substract 0.5 in order to round to nearest integer */
23620 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN4247_TransmissionMode6 )
23621 + 0.5);
23622 CAN_Sgn.UnsignedSgn &= 0x00000003;
23623 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
23624 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
23625
23626 /* ...... "SPN4248_TransmissionMode7" (60|2, standard signal, unsigned int, little endian) */
23627 /* Add or substract 0.5 in order to round to nearest integer */
23628 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN4248_TransmissionMode7 )
23629 + 0.5);
23630 CAN_Sgn.UnsignedSgn &= 0x00000003;
23631 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
23632 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
23633
23634 /* ...... "SPN4249_TransmissionMode8" (62|2, standard signal, unsigned int, little endian) */
23635 /* Add or substract 0.5 in order to round to nearest integer */
23636 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN4249_TransmissionMode8 )
23637 + 0.5);
23638 CAN_Sgn.UnsignedSgn &= 0x00000003;
23639 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
23640 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
23641 }
23642
23643 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
23644 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305], 8,
23645 &(CAN_Msg[0]), delayTime);
23646 }
23647 }
23648
23649 /* End of Constant: '<S1010>/CANT_TC1_03_05_APV' */
23650 /* End of Outputs for SubSystem: '<S1010>/TC1_03_05' */
23651
23652 /* End of Outputs for SubSystem: '<S804>/CAN_TX_50ms' */
23653 /* user code (Output function Trailer for TID2) */
23654
23655 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
23656 /* EventChannel: 0 */
23657 if (tid == 0) {
23658 DSXCP_service(0);
23659 }
23660
23661 /* If subsystem generates rate grouping Output functions,
23662 * when tid is used in Output function for one rate,
23663 * all Output functions include tid as a local variable.
23664 * As result, some Output functions may have unused tid.
23665 */
23666 UNUSED_PARAMETER(tid);
23667}
23668
23669/* Model update function for TID2 */
23670void L4_MABX_update2(void) /* Sample time: [0.05s, 0.0s] */
23671{
23672 /* (no update code required) */
23673}
23674
23675/* Model output function for TID3 */
23676void L4_MABX_output3(void) /* Sample time: [0.1s, 0.0s] */
23677{
23678 int_T tid = 3;
23679 uint16_T tmp;
23680 uint32_T tmp_0;
23681 uint8_T tmp_1;
23682 real_T tmp_2;
23683
23684 /* Outputs for Atomic SubSystem: '<S804>/CAN_TX_100ms' */
23685
23686 /* DataTypeConversion: '<S841>/Data Type Conversion' incorporates:
23687 * Constant: '<S808>/PROPB_XPR_INHIBIT_PARK_MANUAL_APV'
23688 */
23689 L4_MABX_B.DataTypeConversion_fy = (uint8_T)
23690 L4_MABX_P.PROPB_XPR_INHIBIT_PARK_MANUAL_A;
23691
23692 /* S-Function (sfix_bitop): '<S873>/Operator' */
23693 L4_MABX_B.Operator_o = (uint8_T)(L4_MABX_B.DataTypeConversion_fy &
23694 L4_MABX_P.Operator_BitMask_dy);
23695
23696 /* DataTypeConversion: '<S873>/DataType' */
23697 L4_MABX_B.DataType_ik = L4_MABX_B.Operator_o;
23698
23699 /* DataTypeConversion: '<S841>/Data Type Conversion2' incorporates:
23700 * Constant: '<S808>/PROPB_XPR_INHIBIT_UNPARK_MANUAL_APV'
23701 */
23702 L4_MABX_B.DataTypeConversion2_ki = (uint8_T)
23703 L4_MABX_P.PROPB_XPR_INHIBIT_UNPARK_MANUAL;
23704
23705 /* S-Function (sfix_bitop): '<S875>/Operator' */
23706 L4_MABX_B.Operator_mz = (uint8_T)(L4_MABX_B.DataTypeConversion2_ki &
23707 L4_MABX_P.Operator_BitMask_gi);
23708
23709 /* DataTypeConversion: '<S875>/DataType' */
23710 L4_MABX_B.DataType_lk = L4_MABX_B.Operator_mz;
23711
23712 /* ArithShift: '<S841>/Shift_Arithmetic ' */
23713 L4_MABX_B.Shift_Arithmetic_b = (uint8_T)(L4_MABX_B.DataType_lk << 2);
23714
23715 /* DataTypeConversion: '<S841>/Data Type Conversion4' incorporates:
23716 * Constant: '<S808>/PROPB_XPR_PARK_MANUAL_APV'
23717 */
23718 L4_MABX_B.DataTypeConversion4_gj = (uint8_T)
23719 L4_MABX_P.PROPB_XPR_PARK_MANUAL_APV_Value;
23720
23721 /* S-Function (sfix_bitop): '<S876>/Operator' */
23722 L4_MABX_B.Operator_f1j = (uint8_T)(L4_MABX_B.DataTypeConversion4_gj &
23723 L4_MABX_P.Operator_BitMask_fu);
23724
23725 /* DataTypeConversion: '<S876>/DataType' */
23726 L4_MABX_B.DataType_g4 = L4_MABX_B.Operator_f1j;
23727
23728 /* ArithShift: '<S841>/Shift_Arithmetic 1' */
23729 L4_MABX_B.Shift_Arithmetic1_dy = (uint8_T)(L4_MABX_B.DataType_g4 << 4);
23730
23731 /* DataTypeConversion: '<S841>/Data Type Conversion5' incorporates:
23732 * Constant: '<S808>/PROPB_XPR_UNPARK_MANUAL_APV'
23733 */
23734 L4_MABX_B.DataTypeConversion5_m = (uint8_T)
23735 L4_MABX_P.PROPB_XPR_UNPARK_MANUAL_APV_Val;
23736
23737 /* S-Function (sfix_bitop): '<S874>/Operator' */
23738 L4_MABX_B.Operator_ix = (uint8_T)(L4_MABX_B.DataTypeConversion5_m &
23739 L4_MABX_P.Operator_BitMask_k);
23740
23741 /* DataTypeConversion: '<S874>/DataType' */
23742 L4_MABX_B.DataType_js = L4_MABX_B.Operator_ix;
23743
23744 /* ArithShift: '<S841>/Shift_Arithmetic 2' */
23745 L4_MABX_B.Shift_Arithmetic2_b = (uint8_T)(L4_MABX_B.DataType_js << 6);
23746
23747 /* S-Function (sfix_bitop): '<S881>/Operator' */
23748 L4_MABX_B.Operator_iu = (uint8_T)(L4_MABX_B.DataType_ik |
23749 L4_MABX_B.Shift_Arithmetic_b | L4_MABX_B.Shift_Arithmetic1_dy |
23750 L4_MABX_B.Shift_Arithmetic2_b);
23751
23752 /* DataTypeConversion: '<S881>/DataType' */
23753 L4_MABX_B.DataType_oi = L4_MABX_B.Operator_iu;
23754
23755 /* Outputs for Enabled SubSystem: '<S841>/Rolling_15_counter' incorporates:
23756 * EnablePort: '<S883>/Enable'
23757 */
23758 if (L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_R) {
23759 /* UnitDelay: '<S883>/Unit_Delay' */
23760 L4_MABX_B.Unit_Delay = L4_MABX_DW.Unit_Delay_DSTATE;
23761
23762 /* Sum: '<S891>/FixPt Sum1' incorporates:
23763 * Constant: '<S891>/FixPt Constant'
23764 */
23765 L4_MABX_B.FixPtSum1_k = L4_MABX_B.Unit_Delay + L4_MABX_P.FixPtConstant_Value;
23766
23767 /* Switch: '<S892>/FixPt Switch' incorporates:
23768 * Constant: '<S892>/Constant'
23769 */
23770 if (L4_MABX_B.FixPtSum1_k > L4_MABX_P.WrapToZero1_Threshold) {
23771 L4_MABX_B.FixPtSwitch = L4_MABX_P.Constant_Value_hh;
23772 } else {
23773 L4_MABX_B.FixPtSwitch = L4_MABX_B.FixPtSum1_k;
23774 }
23775
23776 /* End of Switch: '<S892>/FixPt Switch' */
23777 }
23778
23779 /* End of Outputs for SubSystem: '<S841>/Rolling_15_counter' */
23780
23781 /* DataTypeConversion: '<S841>/Data Type Conversion1' */
23782 tmp_2 = L4_MABX_B.Unit_Delay;
23783 if (tmp_2 < 256.0) {
23784 if (tmp_2 >= 0.0) {
23785 tmp_1 = (uint8_T)tmp_2;
23786 } else {
23787 tmp_1 = 0U;
23788 }
23789 } else {
23790 tmp_1 = MAX_uint8_T;
23791 }
23792
23793 L4_MABX_B.DataTypeConversion1_du = tmp_1;
23794
23795 /* End of DataTypeConversion: '<S841>/Data Type Conversion1' */
23796
23797 /* S-Function (sfix_bitop): '<S877>/Operator' */
23798 L4_MABX_B.Operator_nh = (uint8_T)(L4_MABX_B.DataTypeConversion1_du &
23799 L4_MABX_P.Operator_BitMask_ca);
23800
23801 /* DataTypeConversion: '<S877>/DataType' */
23802 L4_MABX_B.DataType_ep = L4_MABX_B.Operator_nh;
23803
23804 /* DataTypeConversion: '<S880>/Data Type Conversion' incorporates:
23805 * Constant: '<S880>/Priority'
23806 */
23807 L4_MABX_B.DataTypeConversion_ne = L4_MABX_P.Priority_Value;
23808
23809 /* ArithShift: '<S880>/Shift_Arithmetic ' */
23810 L4_MABX_B.Shift_Arithmetic_h = L4_MABX_B.DataTypeConversion_ne << 26;
23811
23812 /* DataTypeConversion: '<S880>/Data Type Conversion1' incorporates:
23813 * Constant: '<S880>/ExtendedDataPage'
23814 */
23815 L4_MABX_B.DataTypeConversion1_dm = L4_MABX_P.ExtendedDataPage_Value;
23816
23817 /* ArithShift: '<S880>/Shift_Arithmetic 1' */
23818 L4_MABX_B.Shift_Arithmetic1_p = L4_MABX_B.DataTypeConversion1_dm << 25;
23819
23820 /* DataTypeConversion: '<S880>/Data Type Conversion2' incorporates:
23821 * Constant: '<S880>/DataPage'
23822 */
23823 L4_MABX_B.DataTypeConversion2_lhu = L4_MABX_P.DataPage_Value;
23824
23825 /* ArithShift: '<S880>/Shift_Arithmetic 2' */
23826 L4_MABX_B.Shift_Arithmetic2_j = L4_MABX_B.DataTypeConversion2_lhu << 24;
23827
23828 /* DataTypeConversion: '<S880>/Data Type Conversion3' incorporates:
23829 * Constant: '<S880>/PDUFormat'
23830 */
23831 L4_MABX_B.DataTypeConversion3_o = L4_MABX_P.PDUFormat_Value;
23832
23833 /* ArithShift: '<S880>/Shift_Arithmetic 3' */
23834 L4_MABX_B.Shift_Arithmetic3_i = L4_MABX_B.DataTypeConversion3_o << 16;
23835
23836 /* DataTypeConversion: '<S880>/Data Type Conversion4' incorporates:
23837 * Constant: '<S880>/PDUSpecific'
23838 */
23839 L4_MABX_B.DataTypeConversion4_d = L4_MABX_P.PDUSpecific_Value;
23840
23841 /* ArithShift: '<S880>/Shift_Arithmetic 4' */
23842 L4_MABX_B.Shift_Arithmetic4_i = L4_MABX_B.DataTypeConversion4_d << 8;
23843
23844 /* DataTypeConversion: '<S880>/Data Type Conversion5' incorporates:
23845 * Constant: '<S880>/SourceAddress'
23846 */
23847 L4_MABX_B.DataTypeConversion5_bt = L4_MABX_P.SourceAddress_Value;
23848
23849 /* S-Function (sfix_bitop): '<S890>/Operator' */
23850 L4_MABX_B.Operator_j = L4_MABX_B.Shift_Arithmetic_h |
23851 L4_MABX_B.Shift_Arithmetic1_p | L4_MABX_B.Shift_Arithmetic2_j |
23852 L4_MABX_B.Shift_Arithmetic3_i | L4_MABX_B.Shift_Arithmetic4_i |
23853 L4_MABX_B.DataTypeConversion5_bt;
23854
23855 /* DataTypeConversion: '<S890>/DataType' */
23856 L4_MABX_B.DataType_pv = L4_MABX_B.Operator_j;
23857
23858 /* DataTypeConversion: '<S879>/Data Type Conversion8' */
23859 L4_MABX_B.DataTypeConversion8_a = L4_MABX_B.DataType_pv;
23860
23861 /* S-Function (sfix_bitop): '<S886>/Operator' */
23862 L4_MABX_B.Operator_b = L4_MABX_B.DataTypeConversion8_a &
23863 L4_MABX_P.Operator_BitMask_cf;
23864
23865 /* DataTypeConversion: '<S886>/DataType' */
23866 tmp_0 = L4_MABX_B.Operator_b;
23867 if (tmp_0 > 255U) {
23868 tmp_0 = 255U;
23869 }
23870
23871 L4_MABX_B.DataType_dl = (uint8_T)tmp_0;
23872
23873 /* End of DataTypeConversion: '<S886>/DataType' */
23874
23875 /* S-Function (sfix_bitop): '<S887>/Operator' */
23876 L4_MABX_B.Operator_c = L4_MABX_B.DataTypeConversion8_a &
23877 L4_MABX_P.Operator_BitMask_gs;
23878
23879 /* DataTypeConversion: '<S887>/DataType' */
23880 tmp_0 = L4_MABX_B.Operator_c;
23881 if (tmp_0 > 65535U) {
23882 tmp_0 = 65535U;
23883 }
23884
23885 L4_MABX_B.DataType_kl = (uint16_T)tmp_0;
23886
23887 /* End of DataTypeConversion: '<S887>/DataType' */
23888
23889 /* ArithShift: '<S879>/Shift_Arithmetic 3' */
23890 L4_MABX_B.Shift_Arithmetic3_ec = (uint16_T)((uint32_T)L4_MABX_B.DataType_kl >>
23891 8);
23892
23893 /* DataTypeConversion: '<S879>/Data Type Conversion9' */
23894 tmp = L4_MABX_B.Shift_Arithmetic3_ec;
23895 if (tmp > 255) {
23896 tmp = 255U;
23897 }
23898
23899 L4_MABX_B.MessageIDMidLowByte = (uint8_T)tmp;
23900
23901 /* End of DataTypeConversion: '<S879>/Data Type Conversion9' */
23902
23903 /* S-Function (sfix_bitop): '<S888>/Operator' */
23904 L4_MABX_B.Operator_g = L4_MABX_B.DataTypeConversion8_a &
23905 L4_MABX_P.Operator_BitMask_nv;
23906
23907 /* DataTypeConversion: '<S888>/DataType' */
23908 L4_MABX_B.DataType_pz = L4_MABX_B.Operator_g;
23909
23910 /* ArithShift: '<S879>/Shift_Arithmetic 4' */
23911 L4_MABX_B.Shift_Arithmetic4_cq = L4_MABX_B.DataType_pz >> 16;
23912
23913 /* DataTypeConversion: '<S879>/Data Type Conversion10' */
23914 tmp_0 = L4_MABX_B.Shift_Arithmetic4_cq;
23915 if (tmp_0 > 255U) {
23916 tmp_0 = 255U;
23917 }
23918
23919 L4_MABX_B.MessageIDMidHighByte = (uint8_T)tmp_0;
23920
23921 /* End of DataTypeConversion: '<S879>/Data Type Conversion10' */
23922
23923 /* S-Function (sfix_bitop): '<S889>/Operator' */
23924 L4_MABX_B.Operator_f0 = L4_MABX_B.DataTypeConversion8_a &
23925 L4_MABX_P.Operator_BitMask_jg;
23926
23927 /* DataTypeConversion: '<S889>/DataType' */
23928 L4_MABX_B.DataType_ej = L4_MABX_B.Operator_f0;
23929
23930 /* ArithShift: '<S879>/Shift_Arithmetic 5' */
23931 L4_MABX_B.Shift_Arithmetic5_h = L4_MABX_B.DataType_ej >> 24;
23932
23933 /* DataTypeConversion: '<S879>/Data Type Conversion11' */
23934 tmp_0 = L4_MABX_B.Shift_Arithmetic5_h;
23935 if (tmp_0 > 255U) {
23936 tmp_0 = 255U;
23937 }
23938
23939 L4_MABX_B.MessageIDHighByte = (uint8_T)tmp_0;
23940
23941 /* End of DataTypeConversion: '<S879>/Data Type Conversion11' */
23942
23943 /* DataTypeConversion: '<S879>/Data Type Conversion13' */
23944 tmp_2 = L4_MABX_B.Unit_Delay;
23945 if (tmp_2 < 256.0) {
23946 if (tmp_2 >= 0.0) {
23947 tmp_1 = (uint8_T)tmp_2;
23948 } else {
23949 tmp_1 = 0U;
23950 }
23951 } else {
23952 tmp_1 = MAX_uint8_T;
23953 }
23954
23955 L4_MABX_B.DataTypeConversion13_n = tmp_1;
23956
23957 /* End of DataTypeConversion: '<S879>/Data Type Conversion13' */
23958
23959 /* S-Function (sfix_bitop): '<S885>/Operator' */
23960 L4_MABX_B.Operator_kdv = (uint8_T)(L4_MABX_B.DataTypeConversion13_n &
23961 L4_MABX_P.Operator_BitMask_fz);
23962
23963 /* DataTypeConversion: '<S885>/DataType' */
23964 L4_MABX_B.DataType_a1 = L4_MABX_B.Operator_kdv;
23965
23966 /* Sum: '<S879>/Add' incorporates:
23967 * Constant: '<S841>/Constant3'
23968 */
23969 L4_MABX_B.Checksum = (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)
23970 ((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)
23971 (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)
23972 ((uint32_T)(uint8_T)((uint32_T)L4_MABX_B.DataType_oi +
23973 L4_MABX_P.Constant3_Value_aa) + L4_MABX_P.Constant3_Value_aa) +
23974 L4_MABX_P.Constant3_Value_aa) + L4_MABX_P.Constant3_Value_aa) +
23975 L4_MABX_P.Constant3_Value_aa) + L4_MABX_P.Constant3_Value_aa) +
23976 L4_MABX_B.DataType_dl) + L4_MABX_B.MessageIDMidLowByte) +
23977 L4_MABX_B.MessageIDMidHighByte) + L4_MABX_B.MessageIDHighByte) +
23978 L4_MABX_B.DataType_a1);
23979
23980 /* ArithShift: '<S879>/Shift_Arithmetic 7' */
23981 L4_MABX_B.Shift_Arithmetic7_o = (uint8_T)((uint32_T)L4_MABX_B.Checksum >> 4);
23982
23983 /* Sum: '<S879>/Add1' */
23984 L4_MABX_B.Add1_dg = (uint8_T)((uint32_T)L4_MABX_B.Shift_Arithmetic7_o +
23985 L4_MABX_B.Checksum);
23986
23987 /* S-Function (sfix_bitop): '<S884>/Operator' */
23988 L4_MABX_B.Operator_hr = (uint8_T)(L4_MABX_B.Add1_dg &
23989 L4_MABX_P.Operator_BitMask_g3);
23990
23991 /* DataTypeConversion: '<S884>/DataType' */
23992 L4_MABX_B.DataType_p0 = L4_MABX_B.Operator_hr;
23993
23994 /* DataTypeConversion: '<S841>/Data Type Conversion3' */
23995 L4_MABX_B.DataTypeConversion3_if = L4_MABX_B.DataType_p0;
23996
23997 /* S-Function (sfix_bitop): '<S878>/Operator' */
23998 L4_MABX_B.Operator_me = (uint8_T)(L4_MABX_B.DataTypeConversion3_if &
23999 L4_MABX_P.Operator_BitMask_i);
24000
24001 /* DataTypeConversion: '<S878>/DataType' */
24002 L4_MABX_B.DataType_da = L4_MABX_B.Operator_me;
24003
24004 /* ArithShift: '<S841>/Shift_Arithmetic 3' */
24005 L4_MABX_B.Shift_Arithmetic3_h = (uint8_T)(L4_MABX_B.DataType_da << 4);
24006
24007 /* S-Function (sfix_bitop): '<S882>/Operator' */
24008 L4_MABX_B.Operator_dd = (uint8_T)(L4_MABX_B.DataType_ep |
24009 L4_MABX_B.Shift_Arithmetic3_h);
24010
24011 /* DataTypeConversion: '<S882>/DataType' */
24012 L4_MABX_B.DataType_oj = L4_MABX_B.Operator_dd;
24013
24014 /* DataTypeConversion: '<S836>/Data Type Conversion1' incorporates:
24015 * Constant: '<S841>/Constant3'
24016 */
24017 L4_MABX_B.DataTypeConversion1_db[0] = L4_MABX_B.DataType_oi;
24018 L4_MABX_B.DataTypeConversion1_db[1] = L4_MABX_P.Constant3_Value_aa;
24019 L4_MABX_B.DataTypeConversion1_db[2] = L4_MABX_P.Constant3_Value_aa;
24020 L4_MABX_B.DataTypeConversion1_db[3] = L4_MABX_P.Constant3_Value_aa;
24021 L4_MABX_B.DataTypeConversion1_db[4] = L4_MABX_P.Constant3_Value_aa;
24022 L4_MABX_B.DataTypeConversion1_db[5] = L4_MABX_P.Constant3_Value_aa;
24023 L4_MABX_B.DataTypeConversion1_db[6] = L4_MABX_P.Constant3_Value_aa;
24024 L4_MABX_B.DataTypeConversion1_db[7] = L4_MABX_B.DataType_oj;
24025
24026 /* DataTypeConversion: '<S836>/Data Type Conversion' incorporates:
24027 * Constant: '<S808>/CANT_PROPB_XPR_FC_CHANNEL_APV'
24028 */
24029 L4_MABX_B.DataTypeConversion_jv = (uint8_T)
24030 L4_MABX_P.CANT_PROPB_XPR_FC_CHANNEL_APV_V;
24031
24032 /* S-Function (sfix_bitop): '<S851>/Operator' */
24033 L4_MABX_B.Operator_ec = (uint8_T)(L4_MABX_B.DataTypeConversion_jv &
24034 L4_MABX_P.Operator_BitMask_a);
24035
24036 /* DataTypeConversion: '<S851>/DataType' */
24037 L4_MABX_B.DataType_cm = L4_MABX_B.Operator_ec;
24038
24039 /* DataTypeConversion: '<S836>/Data Type Conversion2' */
24040 L4_MABX_B.DataTypeConversion2_mf = (L4_MABX_B.DataType_cm != 0);
24041
24042 /* Logic: '<S859>/Operator' */
24043 L4_MABX_B.Operator_kfj = (L4_MABX_B.TmpRTBAtOperatorInport1 &&
24044 L4_MABX_B.DataTypeConversion2_mf);
24045
24046 /* DataTypeConversion: '<S859>/DataType' */
24047 L4_MABX_B.DataType_j3w = L4_MABX_B.Operator_kfj;
24048
24049 /* Outputs for Enabled SubSystem: '<S863>/PropB_XPR_FC' incorporates:
24050 * EnablePort: '<S865>/Enable'
24051 */
24052 if (L4_MABX_B.DataType_j3w) {
24053 /* S-Function (rti_commonblock): '<S865>/S-Function1' */
24054 /* This comment workarounds a code generation problem */
24055
24056 /* dSPACE RTICAN TX Message Block: "PropB_XPR_FC" Id:419366140 */
24057 {
24058 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
24059
24060 Float32 delayTime = 0.0;
24061
24062 /* ... Read status and timestamp info (previous message) */
24063 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]);
24064
24065 /* Convert timestamp */
24066 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->processed) {
24067 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->timestamp =
24068 rtk_dsts_time_to_simtime_convert
24069 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->timestamp);
24070 }
24071
24072 /* Messages with timestamp zero have been received in pause/stop state
24073 and must not be handled.
24074 */
24075 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->timestamp > 0.0) {
24076 L4_MABX_B.SFunction1_o1_i = (real_T)
24077 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->processed;
24078 L4_MABX_B.SFunction1_o2_nb = (real_T)
24079 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->timestamp;
24080 L4_MABX_B.SFunction1_o3_kv = (real_T)
24081 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->deltatime;
24082 L4_MABX_B.SFunction1_o4_mi = (real_T)
24083 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->delaytime;
24084 }
24085
24086 /* ... Encode Simulink signals of TX and RM blocks*/
24087 {
24088 rtican_Signal_t CAN_Sgn;
24089
24090 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
24091 /* Add or substract 0.5 in order to round to nearest integer */
24092 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_db[0] )
24093 + 0.5);
24094 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24095 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24096
24097 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
24098 /* Add or substract 0.5 in order to round to nearest integer */
24099 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_db[1] )
24100 + 0.5);
24101 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24102 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
24103
24104 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
24105 /* Add or substract 0.5 in order to round to nearest integer */
24106 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_db[2] )
24107 + 0.5);
24108 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24109 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
24110
24111 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
24112 /* Add or substract 0.5 in order to round to nearest integer */
24113 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_db[3] )
24114 + 0.5);
24115 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24116 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24117
24118 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
24119 /* Add or substract 0.5 in order to round to nearest integer */
24120 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_db[4] )
24121 + 0.5);
24122 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24123 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24124
24125 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
24126 /* Add or substract 0.5 in order to round to nearest integer */
24127 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_db[5] )
24128 + 0.5);
24129 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24130 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24131
24132 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
24133 /* Add or substract 0.5 in order to round to nearest integer */
24134 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_db[6] )
24135 + 0.5);
24136 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24137 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24138
24139 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
24140 /* Add or substract 0.5 in order to round to nearest integer */
24141 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_db[7] )
24142 + 0.5);
24143 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24144 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24145 }
24146
24147 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
24148 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC], 8,
24149 &(CAN_Msg[0]), delayTime);
24150 }
24151 }
24152
24153 /* End of Outputs for SubSystem: '<S863>/PropB_XPR_FC' */
24154
24155 /* S-Function (sfix_bitop): '<S856>/Operator' */
24156 L4_MABX_B.Operator_n0 = (uint8_T)(L4_MABX_B.DataTypeConversion_jv &
24157 L4_MABX_P.Operator_BitMask_pl);
24158
24159 /* DataTypeConversion: '<S856>/DataType' */
24160 L4_MABX_B.DataType_fc = L4_MABX_B.Operator_n0;
24161
24162 /* ArithShift: '<S836>/Shift_Arithmetic 2' */
24163 L4_MABX_B.Shift_Arithmetic2_p = ldexp(L4_MABX_B.DataType_fc, (-3));
24164
24165 /* DataTypeConversion: '<S836>/Data Type Conversion5' */
24166 L4_MABX_B.DataTypeConversion5_hx = (L4_MABX_B.Shift_Arithmetic2_p != 0.0);
24167
24168 /* Logic: '<S862>/Operator' */
24169 L4_MABX_B.Operator_jh = (L4_MABX_B.TmpRTBAtOperatorInport1_j &&
24170 L4_MABX_B.DataTypeConversion5_hx);
24171
24172 /* DataTypeConversion: '<S862>/DataType' */
24173 L4_MABX_B.DataType_ibc = L4_MABX_B.Operator_jh;
24174
24175 /* Outputs for Enabled SubSystem: '<S864>/PropB_XPR_FC' incorporates:
24176 * EnablePort: '<S866>/Enable'
24177 */
24178 if (L4_MABX_B.DataType_ibc) {
24179 /* S-Function (rti_commonblock): '<S866>/S-Function1' */
24180 /* This comment workarounds a code generation problem */
24181
24182 /* dSPACE RTICAN TX Message Block: "PropB_XPR_FC" Id:419366140 */
24183 {
24184 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
24185
24186 Float32 delayTime = 0.0;
24187
24188 /* ... Read status and timestamp info (previous message) */
24189 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]);
24190
24191 /* Convert timestamp */
24192 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->processed) {
24193 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->timestamp =
24194 rtk_dsts_time_to_simtime_convert
24195 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->timestamp);
24196 }
24197
24198 /* Messages with timestamp zero have been received in pause/stop state
24199 and must not be handled.
24200 */
24201 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->timestamp > 0.0) {
24202 L4_MABX_B.SFunction1_o1_k1 = (real_T)
24203 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->processed;
24204 L4_MABX_B.SFunction1_o2_np = (real_T)
24205 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->timestamp;
24206 L4_MABX_B.SFunction1_o3_lk = (real_T)
24207 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->deltatime;
24208 L4_MABX_B.SFunction1_o4_i = (real_T)
24209 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->delaytime;
24210 }
24211
24212 /* ... Encode Simulink signals of TX and RM blocks*/
24213 {
24214 rtican_Signal_t CAN_Sgn;
24215
24216 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
24217 /* Add or substract 0.5 in order to round to nearest integer */
24218 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_db[0] )
24219 + 0.5);
24220 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24221 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24222
24223 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
24224 /* Add or substract 0.5 in order to round to nearest integer */
24225 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_db[1] )
24226 + 0.5);
24227 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24228 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
24229
24230 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
24231 /* Add or substract 0.5 in order to round to nearest integer */
24232 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_db[2] )
24233 + 0.5);
24234 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24235 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
24236
24237 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
24238 /* Add or substract 0.5 in order to round to nearest integer */
24239 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_db[3] )
24240 + 0.5);
24241 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24242 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24243
24244 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
24245 /* Add or substract 0.5 in order to round to nearest integer */
24246 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_db[4] )
24247 + 0.5);
24248 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24249 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24250
24251 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
24252 /* Add or substract 0.5 in order to round to nearest integer */
24253 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_db[5] )
24254 + 0.5);
24255 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24256 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24257
24258 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
24259 /* Add or substract 0.5 in order to round to nearest integer */
24260 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_db[6] )
24261 + 0.5);
24262 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24263 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24264
24265 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
24266 /* Add or substract 0.5 in order to round to nearest integer */
24267 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_db[7] )
24268 + 0.5);
24269 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24270 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24271 }
24272
24273 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
24274 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC], 8,
24275 &(CAN_Msg[0]), delayTime);
24276 }
24277 }
24278
24279 /* End of Outputs for SubSystem: '<S864>/PropB_XPR_FC' */
24280
24281 /* S-Function (sfix_bitop): '<S852>/Operator' */
24282 L4_MABX_B.Operator_ee = (uint8_T)(L4_MABX_B.DataTypeConversion_jv &
24283 L4_MABX_P.Operator_BitMask_j);
24284
24285 /* DataTypeConversion: '<S852>/DataType' */
24286 L4_MABX_B.DataType_c0 = L4_MABX_B.Operator_ee;
24287
24288 /* S-Function (sfix_bitop): '<S857>/Operator' */
24289 L4_MABX_B.Operator_nw = (uint8_T)(L4_MABX_B.DataTypeConversion_jv &
24290 L4_MABX_P.Operator_BitMask_mt);
24291
24292 /* DataTypeConversion: '<S857>/DataType' */
24293 L4_MABX_B.DataType_o = L4_MABX_B.Operator_nw;
24294
24295 /* ArithShift: '<S836>/Shift_Arithmetic 3' */
24296 L4_MABX_B.Shift_Arithmetic3_j = ldexp(L4_MABX_B.DataType_o, (-4));
24297
24298 /* DataTypeConversion: '<S836>/Data Type Conversion6' */
24299 L4_MABX_B.DataTypeConversion6_fn = (L4_MABX_B.Shift_Arithmetic3_j != 0.0);
24300
24301 /* Logic: '<S853>/Operator' */
24302 L4_MABX_B.Operator_es1 = (L4_MABX_B.TmpRTBAtOperatorInport1_e &&
24303 L4_MABX_B.DataTypeConversion6_fn);
24304
24305 /* DataTypeConversion: '<S853>/DataType' */
24306 L4_MABX_B.DataType_ix = L4_MABX_B.Operator_es1;
24307
24308 /* S-Function (sfix_bitop): '<S858>/Operator' */
24309 L4_MABX_B.Operator_de = (uint8_T)(L4_MABX_B.DataTypeConversion_jv &
24310 L4_MABX_P.Operator_BitMask_by);
24311
24312 /* DataTypeConversion: '<S858>/DataType' */
24313 L4_MABX_B.DataType_m0 = L4_MABX_B.Operator_de;
24314
24315 /* ArithShift: '<S836>/Shift_Arithmetic 4' */
24316 L4_MABX_B.Shift_Arithmetic4_p = ldexp(L4_MABX_B.DataType_m0, (-5));
24317
24318 /* DataTypeConversion: '<S836>/Data Type Conversion7' */
24319 L4_MABX_B.DataTypeConversion7_g = (L4_MABX_B.Shift_Arithmetic4_p != 0.0);
24320
24321 /* Logic: '<S854>/Operator' */
24322 L4_MABX_B.Operator_k5 = (L4_MABX_B.TmpRTBAtOperatorInport1_p &&
24323 L4_MABX_B.DataTypeConversion7_g);
24324
24325 /* DataTypeConversion: '<S854>/DataType' */
24326 L4_MABX_B.DataType_io = L4_MABX_B.Operator_k5;
24327
24328 /* S-Function (sfix_bitop): '<S855>/Operator' */
24329 L4_MABX_B.Operator_pz = (uint8_T)(L4_MABX_B.DataTypeConversion_jv &
24330 L4_MABX_P.Operator_BitMask_ch);
24331
24332 /* DataTypeConversion: '<S855>/DataType' */
24333 L4_MABX_B.DataType_m0n = L4_MABX_B.Operator_pz;
24334
24335 /* ArithShift: '<S836>/Shift_Arithmetic ' */
24336 L4_MABX_B.Shift_Arithmetic_n = ldexp(L4_MABX_B.DataType_c0, (-1));
24337
24338 /* DataTypeConversion: '<S836>/Data Type Conversion3' */
24339 L4_MABX_B.DataTypeConversion3_fc = (L4_MABX_B.Shift_Arithmetic_n != 0.0);
24340
24341 /* Logic: '<S860>/Operator' */
24342 L4_MABX_B.Operator_ju = (L4_MABX_B.TmpRTBAtOperatorInport1_f &&
24343 L4_MABX_B.DataTypeConversion3_fc);
24344
24345 /* DataTypeConversion: '<S860>/DataType' */
24346 L4_MABX_B.DataType_i2 = L4_MABX_B.Operator_ju;
24347
24348 /* ArithShift: '<S836>/Shift_Arithmetic 1' */
24349 L4_MABX_B.Shift_Arithmetic1_g = ldexp(L4_MABX_B.DataType_m0n, (-2));
24350
24351 /* DataTypeConversion: '<S836>/Data Type Conversion4' */
24352 L4_MABX_B.DataTypeConversion4_mu = (L4_MABX_B.Shift_Arithmetic1_g != 0.0);
24353
24354 /* Logic: '<S861>/Operator' */
24355 L4_MABX_B.Operator_j3 = (L4_MABX_B.TmpRTBAtOperatorInport1_i &&
24356 L4_MABX_B.DataTypeConversion4_mu);
24357
24358 /* DataTypeConversion: '<S861>/DataType' */
24359 L4_MABX_B.DataType_fa = L4_MABX_B.Operator_j3;
24360
24361 /* DataTypeConversion: '<S893>/Data Type Conversion' */
24362 L4_MABX_B.DataTypeConversion_a5 = L4_MABX_B.Latitude__m;
24363
24364 /* DataTypeConversion: '<S893>/Data Type Conversion1' */
24365 L4_MABX_B.DataTypeConversion1_hz = L4_MABX_B.Longitude__d;
24366
24367 /* DataTypeConversion: '<S842>/Data Type Conversion2' incorporates:
24368 * Constant: '<S808>/enablePosRapidUpdateTX'
24369 */
24370 L4_MABX_B.DataTypeConversion2_l0 = L4_MABX_P.enablePosRapidUpdateTX_Value;
24371
24372 /* Outputs for Enabled SubSystem: '<S893>/Std_PosRapidUpdate_01' incorporates:
24373 * EnablePort: '<S894>/Enable'
24374 */
24375 if (L4_MABX_B.DataTypeConversion2_l0) {
24376 /* S-Function (rti_commonblock): '<S894>/S-Function1' */
24377 /* This comment workarounds a code generation problem */
24378
24379 /* dSPACE RTICAN TX Message Block: "Std_PosRapidUpdate_01" Id:3 */
24380 {
24381 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
24382
24383 Float32 delayTime = 0.0;
24384
24385 /* ... Read status and timestamp info (previous message) */
24386 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]);
24387
24388 /* Convert timestamp */
24389 if (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->processed) {
24390 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->timestamp =
24391 rtk_dsts_time_to_simtime_convert
24392 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->timestamp);
24393 }
24394
24395 /* Messages with timestamp zero have been received in pause/stop state
24396 and must not be handled.
24397 */
24398 if (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->timestamp > 0.0) {
24399 L4_MABX_B.SFunction1_o1_ow = (real_T)
24400 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->processed;
24401 L4_MABX_B.SFunction1_o2_ig = (real_T)
24402 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->timestamp;
24403 L4_MABX_B.SFunction1_o3_j = (real_T)
24404 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->deltatime;
24405 L4_MABX_B.SFunction1_o4_ey = (real_T)
24406 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->delaytime;
24407 }
24408
24409 /* ... Encode Simulink signals of TX and RM blocks*/
24410 {
24411 rtican_Signal_t CAN_Sgn;
24412
24413 /* ...... "Latitude_" (0|32, standard signal, signed int, little endian) */
24414 /* Add or substract 0.5 in order to round to nearest integer */
24415 if (( L4_MABX_B.DataTypeConversion_a5 - ( 0 ) ) / 1.0E-7 < -0.5)
24416 CAN_Sgn.SignedSgn = (Int32) (( L4_MABX_B.DataTypeConversion_a5 - ( 0 )
24417 ) / 1.0E-7 - 0.5);
24418 else
24419 CAN_Sgn.SignedSgn = (Int32) (( L4_MABX_B.DataTypeConversion_a5 - ( 0 )
24420 ) / 1.0E-7 + 0.5);
24421 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24422 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte1;
24423 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte2;
24424 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte3;
24425
24426 /* ...... "Longitude_" (32|32, standard signal, signed int, little endian) */
24427 /* Add or substract 0.5 in order to round to nearest integer */
24428 if (( L4_MABX_B.DataTypeConversion1_hz - ( 0 ) ) / 1.0E-7 < -0.5)
24429 CAN_Sgn.SignedSgn = (Int32) (( L4_MABX_B.DataTypeConversion1_hz - ( 0 )
24430 ) / 1.0E-7 - 0.5);
24431 else
24432 CAN_Sgn.SignedSgn = (Int32) (( L4_MABX_B.DataTypeConversion1_hz - ( 0 )
24433 ) / 1.0E-7 + 0.5);
24434 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24435 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte1;
24436 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte2;
24437 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte3;
24438 }
24439
24440 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
24441 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3], 8, &(CAN_Msg[0]),
24442 delayTime);
24443 }
24444 }
24445
24446 /* End of Outputs for SubSystem: '<S893>/Std_PosRapidUpdate_01' */
24447
24448 /* Outputs for Enabled SubSystem: '<S844>/CCVS1_00' incorporates:
24449 * EnablePort: '<S846>/Enable'
24450 */
24451 /* Outputs for Enabled SubSystem: '<S843>/CCVS1_00' incorporates:
24452 * EnablePort: '<S845>/Enable'
24453 */
24454 /* Constant: '<S834>/Enable_TX_CCVS1_00' */
24455 if (L4_MABX_P.Enable_TX_CCVS1_00_Value) {
24456 /* S-Function (rti_commonblock): '<S845>/S-Function1' */
24457 /* This comment workarounds a code generation problem */
24458
24459 /* dSPACE RTICAN TX Message Block: "CCVS1_00" Id:419361024 */
24460 {
24461 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
24462
24463 Float32 delayTime = 0.0;
24464
24465 /* ... Read status and timestamp info (previous message) */
24466 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]);
24467
24468 /* Convert timestamp */
24469 if (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->processed) {
24470 can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->timestamp =
24471 rtk_dsts_time_to_simtime_convert
24472 (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->timestamp);
24473 }
24474
24475 /* Messages with timestamp zero have been received in pause/stop state
24476 and must not be handled.
24477 */
24478 if (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->timestamp > 0.0) {
24479 L4_MABX_B.SFunction1_o1_mt = (real_T)
24480 can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->processed;
24481 L4_MABX_B.SFunction1_o2_g3 = (real_T)
24482 can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->timestamp;
24483 L4_MABX_B.SFunction1_o3_ft = (real_T)
24484 can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->deltatime;
24485 L4_MABX_B.SFunction1_o4_oo = (real_T)
24486 can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->delaytime;
24487 }
24488
24489 /* ... Encode Simulink signals of TX and RM blocks*/
24490 {
24491 rtican_Signal_t CAN_Sgn;
24492
24493 /* ...... "TwoSpeedAxleSwitch" (0|2, standard signal, unsigned int, little endian) */
24494 /* Add or substract 0.5 in order to round to nearest integer */
24495 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.TwoSpeedAxleSwitch_g ) + 0.5);
24496 CAN_Sgn.UnsignedSgn &= 0x00000003;
24497 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24498
24499 /* ...... "ParkingBrakeSwitch" (2|2, standard signal, unsigned int, little endian) */
24500 /* Add or substract 0.5 in order to round to nearest integer */
24501 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkingBrakeSwitch_b ) + 0.5);
24502 CAN_Sgn.UnsignedSgn &= 0x00000003;
24503 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24504 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24505
24506 /* ...... "CruiseCtrlPauseSwitch" (4|2, standard signal, unsigned int, little endian) */
24507 /* Add or substract 0.5 in order to round to nearest integer */
24508 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlPauseSwitch_a ) +
24509 0.5);
24510 CAN_Sgn.UnsignedSgn &= 0x00000003;
24511 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24512 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24513
24514 /* ...... "ParkBrakeReleaseInhibitRq" (6|2, standard signal, unsigned int, little endian) */
24515 /* Add or substract 0.5 in order to round to nearest integer */
24516 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkBrakeReleaseInhibitRq_i )
24517 + 0.5);
24518 CAN_Sgn.UnsignedSgn &= 0x00000003;
24519 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24520 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24521
24522 /* ...... "WheelBasedVehicleSpeed" (8|16, standard signal, unsigned int, little endian) */
24523 /* Add or substract 0.5 in order to round to nearest integer */
24524 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.WheelBasedVehicleSpeed_j0 -
24525 ( 0 ) ) / 0.00390625 + 0.5);
24526 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
24527 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
24528 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte1;
24529
24530 /* ...... "CruiseCtrlActive" (24|2, standard signal, unsigned int, little endian) */
24531 /* Add or substract 0.5 in order to round to nearest integer */
24532 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlActive_f ) + 0.5);
24533 CAN_Sgn.UnsignedSgn &= 0x00000003;
24534 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24535
24536 /* ...... "CruiseCtrlEnableSwitch" (26|2, standard signal, unsigned int, little endian) */
24537 /* Add or substract 0.5 in order to round to nearest integer */
24538 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlEnableSwitch_c0 )
24539 + 0.5);
24540 CAN_Sgn.UnsignedSgn &= 0x00000003;
24541 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24542 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24543
24544 /* ...... "BrakeSwitch" (28|2, standard signal, unsigned int, little endian) */
24545 /* Add or substract 0.5 in order to round to nearest integer */
24546 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.BrakeSwitch_du ) + 0.5);
24547 CAN_Sgn.UnsignedSgn &= 0x00000003;
24548 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24549 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24550
24551 /* ...... "ClutchSwitch" (30|2, standard signal, unsigned int, little endian) */
24552 /* Add or substract 0.5 in order to round to nearest integer */
24553 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ClutchSwitch_j ) + 0.5);
24554 CAN_Sgn.UnsignedSgn &= 0x00000003;
24555 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24556 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24557
24558 /* ...... "CruiseCtrlSetSwitch" (32|2, standard signal, unsigned int, little endian) */
24559 /* Add or substract 0.5 in order to round to nearest integer */
24560 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSwitch_b ) +
24561 0.5);
24562 CAN_Sgn.UnsignedSgn &= 0x00000003;
24563 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24564
24565 /* ...... "CruiseCtrlCoastSwitch" (34|2, standard signal, unsigned int, little endian) */
24566 /* Add or substract 0.5 in order to round to nearest integer */
24567 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlCoastSwitch_c ) +
24568 0.5);
24569 CAN_Sgn.UnsignedSgn &= 0x00000003;
24570 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24571 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24572
24573 /* ...... "CruiseCtrlResumeSwitch" (36|2, standard signal, unsigned int, little endian) */
24574 /* Add or substract 0.5 in order to round to nearest integer */
24575 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlResumeSwitch_b ) +
24576 0.5);
24577 CAN_Sgn.UnsignedSgn &= 0x00000003;
24578 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24579 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24580
24581 /* ...... "CruiseCtrlAccelerateSwitch" (38|2, standard signal, unsigned int, little endian) */
24582 /* Add or substract 0.5 in order to round to nearest integer */
24583 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlAccelerateSwitch_n
24584 ) + 0.5);
24585 CAN_Sgn.UnsignedSgn &= 0x00000003;
24586 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24587 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24588
24589 /* ...... "CruiseCtrlSetSpeed" (40|8, standard signal, unsigned int, little endian) */
24590 /* Add or substract 0.5 in order to round to nearest integer */
24591 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSpeed_g ) + 0.5);
24592 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24593 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24594
24595 /* ...... "PTOGovernorState" (48|5, standard signal, unsigned int, little endian) */
24596 /* Add or substract 0.5 in order to round to nearest integer */
24597 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.PTOGovernorState_p ) + 0.5);
24598 CAN_Sgn.UnsignedSgn &= 0x0000001F;
24599 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24600
24601 /* ...... "CruiseCtrlStates" (53|3, standard signal, unsigned int, little endian) */
24602 /* Add or substract 0.5 in order to round to nearest integer */
24603 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlStates_i ) + 0.5);
24604 CAN_Sgn.UnsignedSgn &= 0x00000007;
24605 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 5;
24606 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24607
24608 /* ...... "EngIdleIncrementSwitch" (56|2, standard signal, unsigned int, little endian) */
24609 /* Add or substract 0.5 in order to round to nearest integer */
24610 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleIncrementSwitch_p ) +
24611 0.5);
24612 CAN_Sgn.UnsignedSgn &= 0x00000003;
24613 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24614
24615 /* ...... "EngIdleDecrementSwitch" (58|2, standard signal, unsigned int, little endian) */
24616 /* Add or substract 0.5 in order to round to nearest integer */
24617 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleDecrementSwitch_c ) +
24618 0.5);
24619 CAN_Sgn.UnsignedSgn &= 0x00000003;
24620 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24621 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24622
24623 /* ...... "EngTestModeSwitch" (60|2, standard signal, unsigned int, little endian) */
24624 /* Add or substract 0.5 in order to round to nearest integer */
24625 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngTestModeSwitch_g ) + 0.5);
24626 CAN_Sgn.UnsignedSgn &= 0x00000003;
24627 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24628 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24629
24630 /* ...... "EngShutdownOverrideSwitch" (62|2, standard signal, unsigned int, little endian) */
24631 /* Add or substract 0.5 in order to round to nearest integer */
24632 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngShutdownOverrideSwitch_c )
24633 + 0.5);
24634 CAN_Sgn.UnsignedSgn &= 0x00000003;
24635 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24636 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24637 }
24638
24639 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
24640 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100], 8,
24641 &(CAN_Msg[0]), delayTime);
24642 }
24643
24644 /* S-Function (rti_commonblock): '<S846>/S-Function1' */
24645 /* This comment workarounds a code generation problem */
24646
24647 /* dSPACE RTICAN TX Message Block: "CCVS1_00" Id:218034432 */
24648 {
24649 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
24650
24651 Float32 delayTime = 0.0;
24652
24653 /* ... Read status and timestamp info (previous message) */
24654 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]);
24655
24656 /* Convert timestamp */
24657 if (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->processed) {
24658 can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->timestamp =
24659 rtk_dsts_time_to_simtime_convert
24660 (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->timestamp);
24661 }
24662
24663 /* Messages with timestamp zero have been received in pause/stop state
24664 and must not be handled.
24665 */
24666 if (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->timestamp > 0.0) {
24667 L4_MABX_B.SFunction1_o1_dm = (real_T)
24668 can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->processed;
24669 L4_MABX_B.SFunction1_o2_hi = (real_T)
24670 can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->timestamp;
24671 L4_MABX_B.SFunction1_o3_cz = (real_T)
24672 can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->deltatime;
24673 L4_MABX_B.SFunction1_o4_m1 = (real_T)
24674 can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->delaytime;
24675 }
24676
24677 /* ... Encode Simulink signals of TX and RM blocks*/
24678 {
24679 rtican_Signal_t CAN_Sgn;
24680
24681 /* ...... "TwoSpeedAxleSwitch" (0|2, standard signal, unsigned int, little endian) */
24682 /* Add or substract 0.5 in order to round to nearest integer */
24683 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.TwoSpeedAxleSwitch_g4 ) +
24684 0.5);
24685 CAN_Sgn.UnsignedSgn &= 0x00000003;
24686 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24687
24688 /* ...... "ParkingBrakeSwitch" (2|2, standard signal, unsigned int, little endian) */
24689 /* Add or substract 0.5 in order to round to nearest integer */
24690 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkingBrakeSwitch_bg ) +
24691 0.5);
24692 CAN_Sgn.UnsignedSgn &= 0x00000003;
24693 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24694 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24695
24696 /* ...... "CruiseCtrlPauseSwitch" (4|2, standard signal, unsigned int, little endian) */
24697 /* Add or substract 0.5 in order to round to nearest integer */
24698 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlPauseSwitch_a4 ) +
24699 0.5);
24700 CAN_Sgn.UnsignedSgn &= 0x00000003;
24701 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24702 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24703
24704 /* ...... "ParkBrakeReleaseInhibitRq" (6|2, standard signal, unsigned int, little endian) */
24705 /* Add or substract 0.5 in order to round to nearest integer */
24706 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkBrakeReleaseInhibitRq_i1
24707 ) + 0.5);
24708 CAN_Sgn.UnsignedSgn &= 0x00000003;
24709 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24710 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24711
24712 /* ...... "WheelBasedVehicleSpeed" (8|16, standard signal, unsigned int, little endian) */
24713 /* Add or substract 0.5 in order to round to nearest integer */
24714 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.WheelBasedVehicleSpeed_j05 -
24715 ( 0 ) ) / 0.00390625 + 0.5);
24716 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
24717 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
24718 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte1;
24719
24720 /* ...... "CruiseCtrlActive" (24|2, standard signal, unsigned int, little endian) */
24721 /* Add or substract 0.5 in order to round to nearest integer */
24722 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlActive_fn ) + 0.5);
24723 CAN_Sgn.UnsignedSgn &= 0x00000003;
24724 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24725
24726 /* ...... "CruiseCtrlEnableSwitch" (26|2, standard signal, unsigned int, little endian) */
24727 /* Add or substract 0.5 in order to round to nearest integer */
24728 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlEnableSwitch_c0n )
24729 + 0.5);
24730 CAN_Sgn.UnsignedSgn &= 0x00000003;
24731 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24732 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24733
24734 /* ...... "BrakeSwitch" (28|2, standard signal, unsigned int, little endian) */
24735 /* Add or substract 0.5 in order to round to nearest integer */
24736 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.BrakeSwitch_dus ) + 0.5);
24737 CAN_Sgn.UnsignedSgn &= 0x00000003;
24738 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24739 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24740
24741 /* ...... "ClutchSwitch" (30|2, standard signal, unsigned int, little endian) */
24742 /* Add or substract 0.5 in order to round to nearest integer */
24743 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ClutchSwitch_j0 ) + 0.5);
24744 CAN_Sgn.UnsignedSgn &= 0x00000003;
24745 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24746 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24747
24748 /* ...... "CruiseCtrlSetSwitch" (32|2, standard signal, unsigned int, little endian) */
24749 /* Add or substract 0.5 in order to round to nearest integer */
24750 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSwitch_bq ) +
24751 0.5);
24752 CAN_Sgn.UnsignedSgn &= 0x00000003;
24753 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24754
24755 /* ...... "CruiseCtrlCoastSwitch" (34|2, standard signal, unsigned int, little endian) */
24756 /* Add or substract 0.5 in order to round to nearest integer */
24757 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlCoastSwitch_ce ) +
24758 0.5);
24759 CAN_Sgn.UnsignedSgn &= 0x00000003;
24760 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24761 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24762
24763 /* ...... "CruiseCtrlResumeSwitch" (36|2, standard signal, unsigned int, little endian) */
24764 /* Add or substract 0.5 in order to round to nearest integer */
24765 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlResumeSwitch_bx )
24766 + 0.5);
24767 CAN_Sgn.UnsignedSgn &= 0x00000003;
24768 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24769 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24770
24771 /* ...... "CruiseCtrlAccelerateSwitch" (38|2, standard signal, unsigned int, little endian) */
24772 /* Add or substract 0.5 in order to round to nearest integer */
24773 CAN_Sgn.UnsignedSgn = (UInt32)
24774 (( L4_MABX_B.CruiseCtrlAccelerateSwitch_nq ) + 0.5);
24775 CAN_Sgn.UnsignedSgn &= 0x00000003;
24776 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24777 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24778
24779 /* ...... "CruiseCtrlSetSpeed" (40|8, standard signal, unsigned int, little endian) */
24780 /* Add or substract 0.5 in order to round to nearest integer */
24781 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSpeed_gy ) +
24782 0.5);
24783 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24784 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24785
24786 /* ...... "PTOGovernorState" (48|5, standard signal, unsigned int, little endian) */
24787 /* Add or substract 0.5 in order to round to nearest integer */
24788 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.PTOGovernorState_pj ) + 0.5);
24789 CAN_Sgn.UnsignedSgn &= 0x0000001F;
24790 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24791
24792 /* ...... "CruiseCtrlStates" (53|3, standard signal, unsigned int, little endian) */
24793 /* Add or substract 0.5 in order to round to nearest integer */
24794 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlStates_iz ) + 0.5);
24795 CAN_Sgn.UnsignedSgn &= 0x00000007;
24796 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 5;
24797 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24798
24799 /* ...... "EngIdleIncrementSwitch" (56|2, standard signal, unsigned int, little endian) */
24800 /* Add or substract 0.5 in order to round to nearest integer */
24801 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleIncrementSwitch_pl )
24802 + 0.5);
24803 CAN_Sgn.UnsignedSgn &= 0x00000003;
24804 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24805
24806 /* ...... "EngIdleDecrementSwitch" (58|2, standard signal, unsigned int, little endian) */
24807 /* Add or substract 0.5 in order to round to nearest integer */
24808 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleDecrementSwitch_cg )
24809 + 0.5);
24810 CAN_Sgn.UnsignedSgn &= 0x00000003;
24811 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24812 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24813
24814 /* ...... "EngTestModeSwitch" (60|2, standard signal, unsigned int, little endian) */
24815 /* Add or substract 0.5 in order to round to nearest integer */
24816 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngTestModeSwitch_gu ) + 0.5);
24817 CAN_Sgn.UnsignedSgn &= 0x00000003;
24818 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24819 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24820
24821 /* ...... "EngShutdownOverrideSwitch" (62|2, standard signal, unsigned int, little endian) */
24822 /* Add or substract 0.5 in order to round to nearest integer */
24823 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngShutdownOverrideSwitch_ca
24824 ) + 0.5);
24825 CAN_Sgn.UnsignedSgn &= 0x00000003;
24826 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24827 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24828 }
24829
24830 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
24831 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100], 8,
24832 &(CAN_Msg[0]), delayTime);
24833 }
24834 }
24835
24836 /* End of Constant: '<S834>/Enable_TX_CCVS1_00' */
24837 /* End of Outputs for SubSystem: '<S843>/CCVS1_00' */
24838 /* End of Outputs for SubSystem: '<S844>/CCVS1_00' */
24839
24840 /* DataTypeConversion: '<S840>/Data Type Conversion' incorporates:
24841 * Constant: '<S839>/Constant'
24842 */
24843 L4_MABX_B.DataTypeConversion_aa = L4_MABX_P.Constant_Value_ie;
24844
24845 /* DataTypeConversion: '<S840>/Data Type Conversion1' */
24846 L4_MABX_B.DataTypeConversion1_cb = (uint16_T)L4_MABX_B.DataTypeConversion_aa;
24847
24848 /* S-Function (sfix_bitop): '<S871>/Operator' */
24849 L4_MABX_B.Operator_dm = (uint16_T)(L4_MABX_B.DataTypeConversion1_cb &
24850 L4_MABX_P.Operator_BitMask_a3f);
24851
24852 /* DataTypeConversion: '<S871>/DataType' */
24853 tmp = L4_MABX_B.Operator_dm;
24854 if (tmp > 255) {
24855 tmp = 255U;
24856 }
24857
24858 L4_MABX_B.DataType_hy = (uint8_T)tmp;
24859
24860 /* End of DataTypeConversion: '<S871>/DataType' */
24861
24862 /* S-Function (sfix_bitop): '<S872>/Operator' */
24863 L4_MABX_B.Operator_hp = (uint16_T)(L4_MABX_B.DataTypeConversion1_cb &
24864 L4_MABX_P.Operator_BitMask_gx);
24865
24866 /* DataTypeConversion: '<S872>/DataType' */
24867 L4_MABX_B.DataType_gp = L4_MABX_B.Operator_hp;
24868
24869 /* ArithShift: '<S840>/Shift_Arithmetic ' */
24870 L4_MABX_B.Shift_Arithmetic_g = (uint16_T)((uint32_T)L4_MABX_B.DataType_gp >> 8);
24871
24872 /* DataTypeConversion: '<S840>/Data Type Conversion2' */
24873 tmp = L4_MABX_B.Shift_Arithmetic_g;
24874 if (tmp > 255) {
24875 tmp = 255U;
24876 }
24877
24878 L4_MABX_B.DataTypeConversion2_fi = (uint8_T)tmp;
24879
24880 /* End of DataTypeConversion: '<S840>/Data Type Conversion2' */
24881
24882 /* DataTypeConversion: '<S835>/Data Type Conversion1' incorporates:
24883 * Constant: '<S840>/Constant'
24884 */
24885 L4_MABX_B.DataTypeConversion1_c[0] = L4_MABX_P.Constant_Value_by;
24886 L4_MABX_B.DataTypeConversion1_c[1] = L4_MABX_P.Constant_Value_by;
24887 L4_MABX_B.DataTypeConversion1_c[2] = L4_MABX_P.Constant_Value_by;
24888 L4_MABX_B.DataTypeConversion1_c[3] = L4_MABX_P.Constant_Value_by;
24889 L4_MABX_B.DataTypeConversion1_c[4] = L4_MABX_P.Constant_Value_by;
24890 L4_MABX_B.DataTypeConversion1_c[5] = L4_MABX_P.Constant_Value_by;
24891 L4_MABX_B.DataTypeConversion1_c[6] = L4_MABX_B.DataType_hy;
24892 L4_MABX_B.DataTypeConversion1_c[7] = L4_MABX_B.DataTypeConversion2_fi;
24893
24894 /* RateTransition: '<S847>/TmpRTBAtHiddenBuf_InsertedFor_PropB_REAX_5_E4_at_inport_10Inport1' incorporates:
24895 * Constant: '<S452>/useReAX_CAN_Ch2'
24896 */
24897 L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_P = L4_MABX_P.useReAX_CAN_Ch2_Value;
24898
24899 /* Outputs for Enabled SubSystem: '<S847>/PropB_REAX_5_E4' incorporates:
24900 * EnablePort: '<S849>/Enable'
24901 */
24902 if (L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_P) {
24903 /* S-Function (rti_commonblock): '<S849>/S-Function1' incorporates:
24904 * Constant: '<S847>/Constant'
24905 * Constant: '<S847>/Constant1'
24906 */
24907 /* This comment workarounds a code generation problem */
24908
24909 /* dSPACE RTICAN TX Message Block: "PropB_REAX_5_E4" Id:419429092 */
24910 {
24911 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
24912 0x00 };
24913
24914 Float32 delayTime = 0.0;
24915
24916 /* link this pointer to CAN_Msg for use in initialize_io_units() */
24917 CANTP1_PTR_M1_C2_XTD_0x18FFFAE4 = &(CAN_Msg[0]);
24918
24919 /* ... perform loop-back if required */
24920 if (L4_MABX_P.Constant1_Value_ac > 0.5) {
24921 /* ... updating the used tx-clientbuffer */
24922 can_tp1_msg_update_all( CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->module,
24923 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->queue );
24924
24925 /* ... Read status and timestamp info perform loop-back (previous message) */
24926 can_tp1_tx_msg_read_loopback(CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4,
24927 8, // datalen
24928 &(CAN_Msg[0]),
24929 CANTP1_RX_SPMSG_M1_C2_XTD);
24930
24931 /* Convert timestamp */
24932 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->processed) {
24933 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp =
24934 rtk_dsts_time_to_simtime_convert
24935 (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp);
24936 }
24937 } else {
24938 /* ... Read status and timestamp info (previous message) */
24939 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4);
24940
24941 /* Convert timestamp */
24942 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->processed) {
24943 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp =
24944 rtk_dsts_time_to_simtime_convert
24945 (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp);
24946 }
24947 }
24948
24949 /* Messages with timestamp zero have been received in pause/stop state
24950 and must not be handled.
24951 */
24952 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp > 0.0) {
24953 L4_MABX_B.SFunction1_o1_p = (real_T)
24954 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->processed;
24955 L4_MABX_B.SFunction1_o2_h3 = (real_T)
24956 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp;
24957 L4_MABX_B.SFunction1_o3_g0 = (real_T)
24958 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->deltatime;
24959 L4_MABX_B.SFunction1_o4_ht = (real_T)
24960 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->delaytime;
24961 }
24962
24963 /* ... Encode Simulink signals of TX and RM blocks*/
24964 {
24965 rtican_Signal_t CAN_Sgn;
24966 UInt32 i;
24967
24968 /* Initialize the static message data to zero */
24969 for (i=0; i<8; i++ )
24970 CAN_Msg[i] = 0;
24971
24972 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
24973 /* Add or substract 0.5 in order to round to nearest integer */
24974 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_c[0] ) +
24975 0.5);
24976 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24977 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24978
24979 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
24980 /* Add or substract 0.5 in order to round to nearest integer */
24981 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_c[1] ) +
24982 0.5);
24983 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24984 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
24985
24986 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
24987 /* Add or substract 0.5 in order to round to nearest integer */
24988 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_c[2] ) +
24989 0.5);
24990 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24991 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
24992
24993 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
24994 /* Add or substract 0.5 in order to round to nearest integer */
24995 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_c[3] ) +
24996 0.5);
24997 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24998 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24999
25000 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
25001 /* Add or substract 0.5 in order to round to nearest integer */
25002 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_c[4] ) +
25003 0.5);
25004 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25005 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25006
25007 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
25008 /* Add or substract 0.5 in order to round to nearest integer */
25009 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_c[5] ) +
25010 0.5);
25011 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25012 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25013
25014 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
25015 /* Add or substract 0.5 in order to round to nearest integer */
25016 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_c[6] ) +
25017 0.5);
25018 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25019 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25020
25021 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
25022 /* Add or substract 0.5 in order to round to nearest integer */
25023 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_c[7] ) +
25024 0.5);
25025 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25026 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25027 }
25028
25029 delayTime = (Float32) L4_MABX_P.Constant_Value_m / (1700);
25030
25031 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25032 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FFFAE4], 8,
25033 &(CAN_Msg[0]), delayTime);
25034 }
25035 }
25036
25037 /* End of Outputs for SubSystem: '<S847>/PropB_REAX_5_E4' */
25038
25039 /* RateTransition: '<S848>/TmpRTBAtHiddenBuf_InsertedFor_PropB_REAX_5_E4_at_inport_10Inport1' */
25040 L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_a = L4_MABX_B.EnablePropB_ReAX_CAN6;
25041
25042 /* Outputs for Enabled SubSystem: '<S848>/PropB_REAX_5_E4' incorporates:
25043 * EnablePort: '<S850>/Enable'
25044 */
25045 if (L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_a) {
25046 /* S-Function (rti_commonblock): '<S850>/S-Function1' incorporates:
25047 * Constant: '<S848>/Constant'
25048 * Constant: '<S848>/Constant1'
25049 */
25050 /* This comment workarounds a code generation problem */
25051
25052 /* dSPACE RTICAN TX Message Block: "PropB_REAX_5_E4" Id:419429092 */
25053 {
25054 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25055 0x00 };
25056
25057 Float32 delayTime = 0.0;
25058
25059 /* link this pointer to CAN_Msg for use in initialize_io_units() */
25060 CANTP1_PTR_M3_C2_XTD_0x18FFFAE4 = &(CAN_Msg[0]);
25061
25062 /* ... perform loop-back if required */
25063 if (L4_MABX_P.Constant1_Value_oa > 0.5) {
25064 /* ... updating the used tx-clientbuffer */
25065 can_tp1_msg_update_all( CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->module,
25066 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->queue );
25067
25068 /* ... Read status and timestamp info perform loop-back (previous message) */
25069 can_tp1_tx_msg_read_loopback(CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4,
25070 8, // datalen
25071 &(CAN_Msg[0]),
25072 CANTP1_RX_SPMSG_M3_C2_XTD);
25073
25074 /* Convert timestamp */
25075 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->processed) {
25076 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp =
25077 rtk_dsts_time_to_simtime_convert
25078 (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp);
25079 }
25080 } else {
25081 /* ... Read status and timestamp info (previous message) */
25082 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4);
25083
25084 /* Convert timestamp */
25085 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->processed) {
25086 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp =
25087 rtk_dsts_time_to_simtime_convert
25088 (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp);
25089 }
25090 }
25091
25092 /* Messages with timestamp zero have been received in pause/stop state
25093 and must not be handled.
25094 */
25095 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp > 0.0) {
25096 L4_MABX_B.SFunction1_o1_n = (real_T)
25097 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->processed;
25098 L4_MABX_B.SFunction1_o2_o = (real_T)
25099 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp;
25100 L4_MABX_B.SFunction1_o3_lz = (real_T)
25101 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->deltatime;
25102 L4_MABX_B.SFunction1_o4_iq = (real_T)
25103 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->delaytime;
25104 }
25105
25106 /* ... Encode Simulink signals of TX and RM blocks*/
25107 {
25108 rtican_Signal_t CAN_Sgn;
25109 UInt32 i;
25110
25111 /* Initialize the static message data to zero */
25112 for (i=0; i<8; i++ )
25113 CAN_Msg[i] = 0;
25114
25115 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
25116 /* Add or substract 0.5 in order to round to nearest integer */
25117 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_c[0] ) +
25118 0.5);
25119 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25120 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25121
25122 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
25123 /* Add or substract 0.5 in order to round to nearest integer */
25124 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_c[1] ) +
25125 0.5);
25126 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25127 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
25128
25129 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
25130 /* Add or substract 0.5 in order to round to nearest integer */
25131 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_c[2] ) +
25132 0.5);
25133 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25134 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
25135
25136 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
25137 /* Add or substract 0.5 in order to round to nearest integer */
25138 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_c[3] ) +
25139 0.5);
25140 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25141 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25142
25143 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
25144 /* Add or substract 0.5 in order to round to nearest integer */
25145 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_c[4] ) +
25146 0.5);
25147 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25148 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25149
25150 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
25151 /* Add or substract 0.5 in order to round to nearest integer */
25152 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_c[5] ) +
25153 0.5);
25154 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25155 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25156
25157 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
25158 /* Add or substract 0.5 in order to round to nearest integer */
25159 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_c[6] ) +
25160 0.5);
25161 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25162 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25163
25164 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
25165 /* Add or substract 0.5 in order to round to nearest integer */
25166 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_c[7] ) +
25167 0.5);
25168 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25169 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25170 }
25171
25172 delayTime = (Float32) L4_MABX_P.Constant_Value_j / (3401);
25173
25174 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25175 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0X18FFFAE4], 8,
25176 &(CAN_Msg[0]), delayTime);
25177 }
25178 }
25179
25180 /* End of Outputs for SubSystem: '<S848>/PropB_REAX_5_E4' */
25181
25182 /* DataTypeConversion: '<S867>/Data Type Conversion' */
25183 L4_MABX_B.DataTypeConversion_ny = L4_MABX_B.SID_k;
25184
25185 /* DataTypeConversion: '<S867>/Data Type Conversion1' */
25186 L4_MABX_B.DataTypeConversion1_gl = L4_MABX_B.COGReference_b;
25187
25188 /* DataTypeConversion: '<S867>/Data Type Conversion2' */
25189 L4_MABX_B.DataTypeConversion2_ay = L4_MABX_B.CourseOverGround_c;
25190
25191 /* DataTypeConversion: '<S867>/Data Type Conversion3' */
25192 L4_MABX_B.DataTypeConversion3_dp = L4_MABX_B.SpeedOverGround_j;
25193
25194 /* DataTypeConversion: '<S837>/Data Type Conversion2' incorporates:
25195 * Constant: '<S808>/enableCOGSRapidUpdateTX'
25196 */
25197 L4_MABX_B.DataTypeConversion2_h = L4_MABX_P.enableCOGSRapidUpdateTX_Value;
25198
25199 /* Outputs for Enabled SubSystem: '<S867>/Std_COGSOGRapidUpdate_01' incorporates:
25200 * EnablePort: '<S868>/Enable'
25201 */
25202 if (L4_MABX_B.DataTypeConversion2_h) {
25203 /* S-Function (rti_commonblock): '<S868>/S-Function1' incorporates:
25204 * Constant: '<S867>/Constant'
25205 * Constant: '<S867>/Constant1'
25206 */
25207 /* This comment workarounds a code generation problem */
25208
25209 /* dSPACE RTICAN TX Message Block: "Std_COGSOGRapidUpdate_01" Id:7 */
25210 {
25211 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25212 0x00 };
25213
25214 Float32 delayTime = 0.0;
25215
25216 /* link this pointer to CAN_Msg for use in initialize_io_units() */
25217 CANTP1_PTR_M3_C2_STD_0x7 = &(CAN_Msg[0]);
25218
25219 /* ... perform loop-back if required */
25220 if (L4_MABX_P.Constant1_Value_jc > 0.5) {
25221 /* ... updating the used tx-clientbuffer */
25222 can_tp1_msg_update_all( CANTP1_TX_M3_C2_MCRCLT_STD_0X7->module,
25223 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->queue );
25224
25225 /* ... Read status and timestamp info perform loop-back (previous message) */
25226 can_tp1_tx_msg_read_loopback(CANTP1_TX_M3_C2_MCRCLT_STD_0X7,
25227 8, // datalen
25228 &(CAN_Msg[0]),
25229 CANTP1_RX_SPMSG_M3_C2_STD);
25230
25231 /* Convert timestamp */
25232 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X7->processed) {
25233 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp =
25234 rtk_dsts_time_to_simtime_convert
25235 (CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp);
25236 }
25237 } else {
25238 /* ... Read status and timestamp info (previous message) */
25239 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M3_C2_MCRCLT_STD_0X7);
25240
25241 /* Convert timestamp */
25242 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X7->processed) {
25243 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp =
25244 rtk_dsts_time_to_simtime_convert
25245 (CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp);
25246 }
25247 }
25248
25249 /* Messages with timestamp zero have been received in pause/stop state
25250 and must not be handled.
25251 */
25252 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp > 0.0) {
25253 L4_MABX_B.SFunction1_o1_fj = (real_T)
25254 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->processed;
25255 L4_MABX_B.SFunction1_o2_nt = (real_T)
25256 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp;
25257 L4_MABX_B.SFunction1_o3_k = (real_T)
25258 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->deltatime;
25259 L4_MABX_B.SFunction1_o4_l = (real_T)
25260 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->delaytime;
25261 }
25262
25263 /* ... Encode Simulink signals of TX and RM blocks*/
25264 {
25265 rtican_Signal_t CAN_Sgn;
25266 UInt32 i;
25267
25268 /* Initialize the static message data to zero */
25269 for (i=0; i<8; i++ )
25270 CAN_Msg[i] = 0;
25271
25272 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
25273 /* Add or substract 0.5 in order to round to nearest integer */
25274 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_ny ) +
25275 0.5);
25276 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25277 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25278
25279 /* ...... "COGReference" (8|2, standard signal, unsigned int, little endian) */
25280 /* Add or substract 0.5 in order to round to nearest integer */
25281 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_gl ) +
25282 0.5);
25283 CAN_Sgn.UnsignedSgn &= 0x00000003;
25284 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
25285
25286 /* ...... "CourseOverGround" (16|16, standard signal, unsigned int, little endian) */
25287 /* Add or substract 0.5 in order to round to nearest integer */
25288 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion2_ay - ( 0
25289 ) ) / 0.0001 + 0.5);
25290 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
25291 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
25292 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte1;
25293
25294 /* ...... "SpeedOverGround" (32|16, standard signal, unsigned int, little endian) */
25295 /* Add or substract 0.5 in order to round to nearest integer */
25296 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion3_dp - ( 0
25297 ) ) / 0.01 + 0.5);
25298 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
25299 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25300 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte1;
25301 }
25302
25303 /* mask unused bits with '1' */
25304 CAN_Msg[1] |= 0xFC;
25305 CAN_Msg[6] |= 0xFF;
25306 CAN_Msg[7] |= 0xFF;
25307 delayTime = (Float32) L4_MABX_P.Constant_Value_fj / (4000);
25308
25309 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25310 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X7], 8, &(CAN_Msg[0]),
25311 delayTime);
25312 }
25313 }
25314
25315 /* End of Outputs for SubSystem: '<S867>/Std_COGSOGRapidUpdate_01' */
25316
25317 /* DataTypeConversion: '<S838>/Data Type Conversion2' incorporates:
25318 * Constant: '<S808>/enableEBC1_8B_TX'
25319 */
25320 L4_MABX_B.DataTypeConversion2_of = L4_MABX_P.enableEBC1_8B_TX_Value;
25321
25322 /* Outputs for Enabled SubSystem: '<S869>/EBC1_TX' incorporates:
25323 * EnablePort: '<S870>/Enable'
25324 */
25325 if (L4_MABX_B.DataTypeConversion2_of) {
25326 /* S-Function (rti_commonblock): '<S870>/S-Function1' */
25327 /* This comment workarounds a code generation problem */
25328
25329 /* dSPACE RTICAN TX Message Block: "EBC1_TX" Id:418382219 */
25330 {
25331 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
25332
25333 Float32 delayTime = 0.0;
25334
25335 /* ... Read status and timestamp info (previous message) */
25336 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]);
25337
25338 /* Convert timestamp */
25339 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->processed) {
25340 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->timestamp =
25341 rtk_dsts_time_to_simtime_convert
25342 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->timestamp);
25343 }
25344
25345 /* Messages with timestamp zero have been received in pause/stop state
25346 and must not be handled.
25347 */
25348 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->timestamp > 0.0) {
25349 L4_MABX_B.SFunction1_o1_m = (real_T)
25350 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->processed;
25351 L4_MABX_B.SFunction1_o2_h = (real_T)
25352 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->timestamp;
25353 L4_MABX_B.SFunction1_o3_c0 = (real_T)
25354 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->deltatime;
25355 L4_MABX_B.SFunction1_o4_be = (real_T)
25356 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->delaytime;
25357 }
25358
25359 /* ... Encode Simulink signals of TX and RM blocks*/
25360 {
25361 rtican_Signal_t CAN_Sgn;
25362
25363 /* ...... "ASREngCtrlActive" (0|2, standard signal, unsigned int, little endian) */
25364 /* Add or substract 0.5 in order to round to nearest integer */
25365 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ASREngCtrlActive ) + 0.5);
25366 CAN_Sgn.UnsignedSgn &= 0x00000003;
25367 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25368
25369 /* ...... "ASRBrakeCtrlActive" (2|2, standard signal, unsigned int, little endian) */
25370 /* Add or substract 0.5 in order to round to nearest integer */
25371 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ASRBrakeCtrlActive ) + 0.5);
25372 CAN_Sgn.UnsignedSgn &= 0x00000003;
25373 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25374 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25375
25376 /* ...... "AntiLockBrakingActive" (4|2, standard signal, unsigned int, little endian) */
25377 /* Add or substract 0.5 in order to round to nearest integer */
25378 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AntiLockBrakingActive ) +
25379 0.5);
25380 CAN_Sgn.UnsignedSgn &= 0x00000003;
25381 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25382 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25383
25384 /* ...... "EBSBrakeSwitch" (6|2, standard signal, unsigned int, little endian) */
25385 /* Add or substract 0.5 in order to round to nearest integer */
25386 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EBSBrakeSwitch_b ) + 0.5);
25387 CAN_Sgn.UnsignedSgn &= 0x00000003;
25388 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25389 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25390
25391 /* ...... "BrakePedalPos" (8|8, standard signal, unsigned int, little endian) */
25392 /* Add or substract 0.5 in order to round to nearest integer */
25393 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.BrakePedalPos - ( 0 ) ) /
25394 0.4 + 0.5);
25395 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25396 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
25397
25398 /* ...... "ABSOffroadSwitch" (16|2, standard signal, unsigned int, little endian) */
25399 /* Add or substract 0.5 in order to round to nearest integer */
25400 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ABSOffroadSwitch ) + 0.5);
25401 CAN_Sgn.UnsignedSgn &= 0x00000003;
25402 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
25403
25404 /* ...... "ASROffroadSwitch" (18|2, standard signal, unsigned int, little endian) */
25405 /* Add or substract 0.5 in order to round to nearest integer */
25406 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ASROffroadSwitch ) + 0.5);
25407 CAN_Sgn.UnsignedSgn &= 0x00000003;
25408 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25409 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
25410
25411 /* ...... "ASRHillHolderSwitch" (20|2, standard signal, unsigned int, little endian) */
25412 /* Add or substract 0.5 in order to round to nearest integer */
25413 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ASRHillHolderSwitch ) + 0.5);
25414 CAN_Sgn.UnsignedSgn &= 0x00000003;
25415 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25416 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
25417
25418 /* ...... "TractionCtrlOverrideSwitch" (22|2, standard signal, unsigned int, little endian) */
25419 /* Add or substract 0.5 in order to round to nearest integer */
25420 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.TractionCtrlOverrideSwitch )
25421 + 0.5);
25422 CAN_Sgn.UnsignedSgn &= 0x00000003;
25423 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25424 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
25425
25426 /* ...... "AccelInterlockSwitch" (24|2, standard signal, unsigned int, little endian) */
25427 /* Add or substract 0.5 in order to round to nearest integer */
25428 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AccelInterlockSwitch ) + 0.5);
25429 CAN_Sgn.UnsignedSgn &= 0x00000003;
25430 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25431
25432 /* ...... "EngDerateSwitch" (26|2, standard signal, unsigned int, little endian) */
25433 /* Add or substract 0.5 in order to round to nearest integer */
25434 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngDerateSwitch ) + 0.5);
25435 CAN_Sgn.UnsignedSgn &= 0x00000003;
25436 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25437 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25438
25439 /* ...... "EngAuxShutdownSwitch" (28|2, standard signal, unsigned int, little endian) */
25440 /* Add or substract 0.5 in order to round to nearest integer */
25441 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngAuxShutdownSwitch ) + 0.5);
25442 CAN_Sgn.UnsignedSgn &= 0x00000003;
25443 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25444 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25445
25446 /* ...... "RemoteAccelEnableSwitch" (30|2, standard signal, unsigned int, little endian) */
25447 /* Add or substract 0.5 in order to round to nearest integer */
25448 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.RemoteAccelEnableSwitch ) +
25449 0.5);
25450 CAN_Sgn.UnsignedSgn &= 0x00000003;
25451 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25452 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25453
25454 /* ...... "EngRetarderSelection" (32|8, standard signal, unsigned int, little endian) */
25455 /* Add or substract 0.5 in order to round to nearest integer */
25456 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngRetarderSelection - ( 0 )
25457 ) / 0.4 + 0.5);
25458 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25459 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25460
25461 /* ...... "ABSFullyOperational" (40|2, standard signal, unsigned int, little endian) */
25462 /* Add or substract 0.5 in order to round to nearest integer */
25463 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ABSFullyOperational ) + 0.5);
25464 CAN_Sgn.UnsignedSgn &= 0x00000003;
25465 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25466
25467 /* ...... "EBSRedWarningSignal" (42|2, standard signal, unsigned int, little endian) */
25468 /* Add or substract 0.5 in order to round to nearest integer */
25469 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EBSRedWarningSignal ) + 0.5);
25470 CAN_Sgn.UnsignedSgn &= 0x00000003;
25471 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25472 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25473
25474 /* ...... "ABS_EBSAmberWarningSignal" (44|2, standard signal, unsigned int, little endian) */
25475 /* Add or substract 0.5 in order to round to nearest integer */
25476 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ABS_EBSAmberWarningSignal )
25477 + 0.5);
25478 CAN_Sgn.UnsignedSgn &= 0x00000003;
25479 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25480 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25481
25482 /* ...... "ATC_ASRInformationSignal" (46|2, standard signal, unsigned int, little endian) */
25483 /* Add or substract 0.5 in order to round to nearest integer */
25484 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ATC_ASRInformationSignal ) +
25485 0.5);
25486 CAN_Sgn.UnsignedSgn &= 0x00000003;
25487 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25488 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25489
25490 /* ...... "SrcAddrssOfCtrllngDvcFrBrkCntrl" (48|8, standard signal, unsigned int, little endian) */
25491 /* Add or substract 0.5 in order to round to nearest integer */
25492 CAN_Sgn.UnsignedSgn = (UInt32)
25493 (( L4_MABX_B.SrcAddrssOfCtrllngDvcFrBrkCntrl ) + 0.5);
25494 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25495 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25496
25497 /* ...... "HaltBrakeSwitch" (58|2, standard signal, unsigned int, little endian) */
25498 /* Add or substract 0.5 in order to round to nearest integer */
25499 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.HaltBrakeSwitch ) + 0.5);
25500 CAN_Sgn.UnsignedSgn &= 0x00000003;
25501 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25502 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25503
25504 /* ...... "TrailerABSStatus" (60|2, standard signal, unsigned int, little endian) */
25505 /* Add or substract 0.5 in order to round to nearest integer */
25506 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.TrailerABSStatus ) + 0.5);
25507 CAN_Sgn.UnsignedSgn &= 0x00000003;
25508 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25509 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25510
25511 /* ...... "TrctrMntdTrilerABSWarningSignal" (62|2, standard signal, unsigned int, little endian) */
25512 /* Add or substract 0.5 in order to round to nearest integer */
25513 CAN_Sgn.UnsignedSgn = (UInt32)
25514 (( L4_MABX_B.TrctrMntdTrilerABSWarningSignal ) + 0.5);
25515 CAN_Sgn.UnsignedSgn &= 0x00000003;
25516 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25517 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25518 }
25519
25520 /* mask unused bits with '1' */
25521 CAN_Msg[7] |= 0x03;
25522
25523 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25524 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B], 8,
25525 &(CAN_Msg[0]), delayTime);
25526 }
25527 }
25528
25529 /* End of Outputs for SubSystem: '<S869>/EBC1_TX' */
25530
25531 /* End of Outputs for SubSystem: '<S804>/CAN_TX_100ms' */
25532
25533 /* DiscretePulseGenerator: '<S1033>/Flash' */
25534 L4_MABX_B.Flash = (L4_MABX_DW.clockTickCounter_e < L4_MABX_P.Flash_Duty) &&
25535 (L4_MABX_DW.clockTickCounter_e >= 0) ? L4_MABX_P.Flash_Amp : 0.0;
25536 if (L4_MABX_DW.clockTickCounter_e >= L4_MABX_P.Flash_Period - 1.0) {
25537 L4_MABX_DW.clockTickCounter_e = 0;
25538 } else {
25539 L4_MABX_DW.clockTickCounter_e++;
25540 }
25541
25542 /* End of DiscretePulseGenerator: '<S1033>/Flash' */
25543 /* user code (Output function Trailer for TID3) */
25544
25545 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
25546 /* EventChannel: 0 */
25547 if (tid == 0) {
25548 DSXCP_service(0);
25549 }
25550
25551 /* If subsystem generates rate grouping Output functions,
25552 * when tid is used in Output function for one rate,
25553 * all Output functions include tid as a local variable.
25554 * As result, some Output functions may have unused tid.
25555 */
25556 UNUSED_PARAMETER(tid);
25557}
25558
25559/* Model update function for TID3 */
25560void L4_MABX_update3(void) /* Sample time: [0.1s, 0.0s] */
25561{
25562 /* Update for Atomic SubSystem: '<S804>/CAN_TX_100ms' */
25563
25564 /* Update for Enabled SubSystem: '<S841>/Rolling_15_counter' incorporates:
25565 * EnablePort: '<S883>/Enable'
25566 */
25567 if (L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_R) {
25568 /* Update for UnitDelay: '<S883>/Unit_Delay' */
25569 L4_MABX_DW.Unit_Delay_DSTATE = L4_MABX_B.FixPtSwitch;
25570 }
25571
25572 /* End of Update for SubSystem: '<S841>/Rolling_15_counter' */
25573
25574 /* End of Update for SubSystem: '<S804>/CAN_TX_100ms' */
25575
25576 /* Update for RateTransition: '<S1033>/TmpRTBAtANDInport1' */
25577 L4_MABX_DW.TmpRTBAtANDInport1_Buffer0 = L4_MABX_B.Flash;
25578}
25579
25580/* Model output function for TID4 */
25581void L4_MABX_output4(void) /* Sample time: [0.25s, 0.0s] */
25582{
25583 int_T tid = 4;
25584
25585 /* user code (Output function Trailer for TID4) */
25586
25587 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
25588 /* EventChannel: 0 */
25589 if (tid == 0) {
25590 DSXCP_service(0);
25591 }
25592
25593 /* If subsystem generates rate grouping Output functions,
25594 * when tid is used in Output function for one rate,
25595 * all Output functions include tid as a local variable.
25596 * As result, some Output functions may have unused tid.
25597 */
25598 UNUSED_PARAMETER(tid);
25599}
25600
25601/* Model update function for TID4 */
25602void L4_MABX_update4(void) /* Sample time: [0.25s, 0.0s] */
25603{
25604 /* (no update code required) */
25605}
25606
25607/* Model output function for TID5 */
25608void L4_MABX_output5(void) /* Sample time: [0.5s, 0.0s] */
25609{
25610 int_T tid = 5;
25611 boolean_T zcEvent;
25612 uint32_T q0;
25613 uint32_T qY;
25614
25615 /* S-Function (rti_commonblock): '<S28>/S-Function1' */
25616 /* This comment workarounds a code generation problem */
25617
25618 /* dSPACE RTICAN Status block */
25619 /* ... read status variables of the CAN microcontroller */
25620 {
25621 UInt32 loop_counter, memory, j;
25622 for (j=0;j<=9;j++) {
25623 rtican_type1_tq_error[0][6] = can_tp1_service_read
25624 (can_type1_service_M1_C1[j]);
25625 loop_counter = 0;
25626 while ((rtican_type1_tq_error[0][6] = can_tp1_service_request
25627 (can_type1_service_M1_C1[j]))== DSMCOM_BUFFER_OVERFLOW) {
25628 loop_counter++;
25629 if (loop_counter > MAX_LOOP) {
25630 memory = rtican_type1_error_level;
25631 rtican_type1_error_level = 1;
25632 rtican_type1_tq_err_sig(0, 6);
25633 rtican_type1_error_level = memory;
25634 break;
25635 }
25636 }
25637
25638 if (j==CANTP1_M1_C1_RXLost) {
25639 rtican_type1_tq_error[0][6] = can_tp1_service_read
25640 (can_type1_service_M1_C1[CANTP1_M1_C1_DataLost]);
25641 loop_counter = 0;
25642 while ((rtican_type1_tq_error[0][6] = can_tp1_service_request
25643 (can_type1_service_M1_C1[CANTP1_M1_C1_DataLost]))==
25644 DSMCOM_BUFFER_OVERFLOW) {
25645 loop_counter++;
25646 if (loop_counter > MAX_LOOP) {
25647 memory = rtican_type1_error_level;
25648 rtican_type1_error_level = 1;
25649 rtican_type1_tq_err_sig(0, 6);
25650 rtican_type1_error_level = memory;
25651 break;
25652 }
25653 }
25654 }
25655 }
25656
25657 L4_MABX_B.SFunction1_o1_kxk = (UInt32)
25658 can_type1_service_M1_C1[CANTP1_M1_C1_Status]->data0;
25659 DIAG_CAN1_Count_Stuff_Errors = (UInt32)
25660 can_type1_service_M1_C1[CANTP1_M1_C1_StuffErrors]->data0;
25661 DIAG_CAN1_Count_Format_Errors = (UInt32)
25662 can_type1_service_M1_C1[CANTP1_M1_C1_FormatErrors]->data0;
25663 DIAG_CAN1_Count_Ack_Errors = (UInt32)
25664 can_type1_service_M1_C1[CANTP1_M1_C1_AckErrors]->data0;
25665 DIAG_CAN1_Count_Bit0_Errors = (UInt32)
25666 can_type1_service_M1_C1[CANTP1_M1_C1_Bit0Errors]->data0;
25667 DIAG_CAN1_Count_Bit1_Errors = (UInt32)
25668 can_type1_service_M1_C1[CANTP1_M1_C1_Bit1Errors]->data0;
25669 DIAG_CAN1_Count_CRC_Errors = (UInt32)
25670 can_type1_service_M1_C1[CANTP1_M1_C1_CRCErrors]->data0;
25671 DIAG_CAN1_Count_RX_Lost = (UInt32)
25672 (can_type1_service_M1_C1[CANTP1_M1_C1_RXLost]->data0 +
25673 can_type1_service_M1_C1[CANTP1_M1_C1_DataLost]->data0);
25674 DIAG_CAN1_Count_RX_OK = (UInt32) can_type1_service_M1_C1[CANTP1_M1_C1_RXOK
25675 ]->data0;
25676 DIAG_CAN1_Count_TX_OK = (UInt32) can_type1_service_M1_C1[CANTP1_M1_C1_TXOK
25677 ]->data0;
25678 }
25679
25680 /* DataTypeConversion: '<S1>/Data Type Conversion' */
25681 DIAG_CAN1_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
25682 ((int32_T)L4_MABX_B.SFunction1_o1_kxk);
25683
25684 /* RelationalOperator: '<S22>/Operator' incorporates:
25685 * Constant: '<S1>/Constant'
25686 */
25687 L4_MABX_B.Operator_eu = (L4_MABX_P.Constant_Value_cq == DIAG_CAN1_Status);
25688
25689 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_1' incorporates:
25690 * EnablePort: '<S11>/Enable'
25691 */
25692 if (L4_MABX_B.Operator_eu) {
25693 /* Reshape: '<S30>/Reshape' incorporates:
25694 * Constant: '<S30>/Constant'
25695 */
25696 L4_MABX_B.Reshape_g[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_l[0];
25697 L4_MABX_B.Reshape_g[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_l[1];
25698
25699 /* UnitDelay: '<S30>/Unit_Delay' */
25700 L4_MABX_B.Unit_Delay_h4 = L4_MABX_DW.Unit_Delay_DSTATE_f1;
25701
25702 /* UnitDelay: '<S31>/Unit Delay' */
25703 L4_MABX_B.UnitDelay_f4 = L4_MABX_DW.UnitDelay_DSTATE_j1;
25704
25705 /* Switch: '<S34>/Switch1' incorporates:
25706 * Constant: '<S31>/E'
25707 * Constant: '<S31>/IV'
25708 * Switch: '<S33>/Switch1'
25709 */
25710 if (L4_MABX_B.Unit_Delay_h4) {
25711 L4_MABX_B.Switch1_o = L4_MABX_P.IV_Value_m;
25712 } else {
25713 if (L4_MABX_P.E_Value) {
25714 /* Sum: '<S31>/Subtract' incorporates:
25715 * Constant: '<S31>/Constant'
25716 * Switch: '<S33>/Switch1'
25717 */
25718 q0 = L4_MABX_P.Constant_Value_jc3;
25719 qY = q0 + L4_MABX_B.UnitDelay_f4;
25720 if (qY < q0) {
25721 qY = MAX_uint32_T;
25722 }
25723
25724 L4_MABX_B.Subtract_ot = qY;
25725
25726 /* End of Sum: '<S31>/Subtract' */
25727
25728 /* Switch: '<S33>/Switch1' */
25729 L4_MABX_B.Switch1_a = L4_MABX_B.Subtract_ot;
25730 } else {
25731 /* Switch: '<S33>/Switch1' */
25732 L4_MABX_B.Switch1_a = L4_MABX_B.UnitDelay_f4;
25733 }
25734
25735 L4_MABX_B.Switch1_o = L4_MABX_B.Switch1_a;
25736 }
25737
25738 /* End of Switch: '<S34>/Switch1' */
25739
25740 /* Selector: '<S30>/Selector' */
25741 L4_MABX_B.Selector_d = L4_MABX_B.Reshape_g[(int32_T)L4_MABX_B.Switch1_o - 1];
25742
25743 /* Outputs for Triggered SubSystem: '<S11>/CAN_TYPE1_BOR_M1_C1' incorporates:
25744 * TriggerPort: '<S29>/Trigger'
25745 */
25746 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C1_Trig_ZCE == POS_ZCSIG) !=
25747 (int32_T)L4_MABX_B.Selector_d) &&
25748 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C1_Trig_ZCE !=
25749 UNINITIALIZED_ZCSIG));
25750 if (zcEvent) {
25751 /* S-Function (rti_commonblock): '<S29>/S-Function1' */
25752 /* This comment workarounds a code generation problem */
25753
25754 /* dSPACE RTICAN Bus Off Recovery block */
25755 /* ... Perform software-reset of the CAN microcontroller */
25756 {
25757 UInt32 loop_counter, memory;
25758 loop_counter = 0;
25759 while ((rtican_type1_tq_error[0][0] = can_tp1_channel_BOff_return
25760 (can_type1_channel_M1_C1)) == DSMCOM_BUFFER_OVERFLOW) {
25761 loop_counter++;
25762 if (loop_counter > MAX_LOOP) {
25763 memory = rtican_type1_error_level;
25764 rtican_type1_error_level = 1;
25765 rtican_type1_tq_err_sig(0, 0);
25766 rtican_type1_error_level = memory;
25767 break;
25768 }
25769 }
25770
25771 while ((rtican_type1_tq_error[0][0] = can_tp1_channel_all_wakeup
25772 (can_type1_channel_M1_C1)) == DSMCOM_BUFFER_OVERFLOW) {
25773 loop_counter++;
25774 if (loop_counter > MAX_LOOP) {
25775 memory = rtican_type1_error_level;
25776 rtican_type1_error_level = 1;
25777 rtican_type1_tq_err_sig(0, 0);
25778 rtican_type1_error_level = memory;
25779 break;
25780 }
25781 }
25782 }
25783 }
25784
25785 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C1_Trig_ZCE = L4_MABX_B.Selector_d;
25786
25787 /* End of Outputs for SubSystem: '<S11>/CAN_TYPE1_BOR_M1_C1' */
25788
25789 /* RelationalOperator: '<S32>/Operator' */
25790 L4_MABX_B.Operator_f5 = (L4_MABX_B.Switch1_o == L4_MABX_ConstB.Width_p);
25791 }
25792
25793 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_1' */
25794
25795 /* S-Function (rti_commonblock): '<S20>/S-Function1' */
25796 /* This comment workarounds a code generation problem */
25797
25798 /* dSPACE RTICAN Status block */
25799 /* ... read status variables of the CAN microcontroller */
25800 {
25801 UInt32 loop_counter, memory, j;
25802 for (j=0;j<=9;j++) {
25803 rtican_type1_tq_error[2][6] = can_tp1_service_read
25804 (can_type1_service_M3_C1[j]);
25805 loop_counter = 0;
25806 while ((rtican_type1_tq_error[2][6] = can_tp1_service_request
25807 (can_type1_service_M3_C1[j]))== DSMCOM_BUFFER_OVERFLOW) {
25808 loop_counter++;
25809 if (loop_counter > MAX_LOOP) {
25810 memory = rtican_type1_error_level;
25811 rtican_type1_error_level = 1;
25812 rtican_type1_tq_err_sig(2, 6);
25813 rtican_type1_error_level = memory;
25814 break;
25815 }
25816 }
25817
25818 if (j==CANTP1_M3_C1_RXLost) {
25819 rtican_type1_tq_error[2][6] = can_tp1_service_read
25820 (can_type1_service_M3_C1[CANTP1_M3_C1_DataLost]);
25821 loop_counter = 0;
25822 while ((rtican_type1_tq_error[2][6] = can_tp1_service_request
25823 (can_type1_service_M3_C1[CANTP1_M3_C1_DataLost]))==
25824 DSMCOM_BUFFER_OVERFLOW) {
25825 loop_counter++;
25826 if (loop_counter > MAX_LOOP) {
25827 memory = rtican_type1_error_level;
25828 rtican_type1_error_level = 1;
25829 rtican_type1_tq_err_sig(2, 6);
25830 rtican_type1_error_level = memory;
25831 break;
25832 }
25833 }
25834 }
25835 }
25836
25837 L4_MABX_B.SFunction1_o1_g3 = (UInt32)
25838 can_type1_service_M3_C1[CANTP1_M3_C1_Status]->data0;
25839 DIAG_CAN5_Count_Stuff_Errors = (UInt32)
25840 can_type1_service_M3_C1[CANTP1_M3_C1_StuffErrors]->data0;
25841 DIAG_CAN5_Count_Format_Errors = (UInt32)
25842 can_type1_service_M3_C1[CANTP1_M3_C1_FormatErrors]->data0;
25843 DIAG_CAN5_Count_Ack_Errors = (UInt32)
25844 can_type1_service_M3_C1[CANTP1_M3_C1_AckErrors]->data0;
25845 DIAG_CAN5_Count_Bit0_Errors = (UInt32)
25846 can_type1_service_M3_C1[CANTP1_M3_C1_Bit0Errors]->data0;
25847 DIAG_CAN5_Count_Bit1_Errors = (UInt32)
25848 can_type1_service_M3_C1[CANTP1_M3_C1_Bit1Errors]->data0;
25849 DIAG_CAN5_Count_CRC_Errors = (UInt32)
25850 can_type1_service_M3_C1[CANTP1_M3_C1_CRCErrors]->data0;
25851 DIAG_CAN5_Count_RX_Lost = (UInt32)
25852 (can_type1_service_M3_C1[CANTP1_M3_C1_RXLost]->data0 +
25853 can_type1_service_M3_C1[CANTP1_M3_C1_DataLost]->data0);
25854 DIAG_CAN5_Count_RX_OK = (UInt32) can_type1_service_M3_C1[CANTP1_M3_C1_RXOK
25855 ]->data0;
25856 DIAG_CAN5_Count_TX_OK = (UInt32) can_type1_service_M3_C1[CANTP1_M3_C1_TXOK
25857 ]->data0;
25858 }
25859
25860 /* DataTypeConversion: '<S1>/Data Type Conversion5' */
25861 DIAG_CAN5_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
25862 ((int32_T)L4_MABX_B.SFunction1_o1_g3);
25863
25864 /* RelationalOperator: '<S26>/Operator' incorporates:
25865 * Constant: '<S1>/Constant4'
25866 */
25867 L4_MABX_B.Operator_ms = (L4_MABX_P.Constant4_Value_np == DIAG_CAN5_Status);
25868
25869 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_5' incorporates:
25870 * EnablePort: '<S15>/Enable'
25871 */
25872 if (L4_MABX_B.Operator_ms) {
25873 /* Reshape: '<S54>/Reshape' incorporates:
25874 * Constant: '<S54>/Constant'
25875 */
25876 L4_MABX_B.Reshape_a[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_j[0];
25877 L4_MABX_B.Reshape_a[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_j[1];
25878
25879 /* UnitDelay: '<S54>/Unit_Delay' */
25880 L4_MABX_B.Unit_Delay_p1 = L4_MABX_DW.Unit_Delay_DSTATE_i5;
25881
25882 /* UnitDelay: '<S55>/Unit Delay' */
25883 L4_MABX_B.UnitDelay_j = L4_MABX_DW.UnitDelay_DSTATE_p;
25884
25885 /* Switch: '<S58>/Switch1' incorporates:
25886 * Constant: '<S55>/E'
25887 * Constant: '<S55>/IV'
25888 * Switch: '<S57>/Switch1'
25889 */
25890 if (L4_MABX_B.Unit_Delay_p1) {
25891 L4_MABX_B.Switch1_kd = L4_MABX_P.IV_Value_h;
25892 } else {
25893 if (L4_MABX_P.E_Value_db) {
25894 /* Sum: '<S55>/Subtract' incorporates:
25895 * Constant: '<S55>/Constant'
25896 * Switch: '<S57>/Switch1'
25897 */
25898 q0 = L4_MABX_P.Constant_Value_jg;
25899 qY = q0 + L4_MABX_B.UnitDelay_j;
25900 if (qY < q0) {
25901 qY = MAX_uint32_T;
25902 }
25903
25904 L4_MABX_B.Subtract_m = qY;
25905
25906 /* End of Sum: '<S55>/Subtract' */
25907
25908 /* Switch: '<S57>/Switch1' */
25909 L4_MABX_B.Switch1_l = L4_MABX_B.Subtract_m;
25910 } else {
25911 /* Switch: '<S57>/Switch1' */
25912 L4_MABX_B.Switch1_l = L4_MABX_B.UnitDelay_j;
25913 }
25914
25915 L4_MABX_B.Switch1_kd = L4_MABX_B.Switch1_l;
25916 }
25917
25918 /* End of Switch: '<S58>/Switch1' */
25919
25920 /* Selector: '<S54>/Selector' */
25921 L4_MABX_B.Selector_p = L4_MABX_B.Reshape_a[(int32_T)L4_MABX_B.Switch1_kd - 1];
25922
25923 /* Outputs for Triggered SubSystem: '<S15>/CAN_TYPE1_BOR_M3_C1' incorporates:
25924 * TriggerPort: '<S53>/Trigger'
25925 */
25926 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C1_Trig_ZCE == POS_ZCSIG) !=
25927 (int32_T)L4_MABX_B.Selector_p) &&
25928 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C1_Trig_ZCE !=
25929 UNINITIALIZED_ZCSIG));
25930 if (zcEvent) {
25931 /* S-Function (rti_commonblock): '<S53>/S-Function1' */
25932 /* This comment workarounds a code generation problem */
25933
25934 /* dSPACE RTICAN Bus Off Recovery block */
25935 /* ... Perform software-reset of the CAN microcontroller */
25936 {
25937 UInt32 loop_counter, memory;
25938 loop_counter = 0;
25939 while ((rtican_type1_tq_error[2][0] = can_tp1_channel_BOff_return
25940 (can_type1_channel_M3_C1)) == DSMCOM_BUFFER_OVERFLOW) {
25941 loop_counter++;
25942 if (loop_counter > MAX_LOOP) {
25943 memory = rtican_type1_error_level;
25944 rtican_type1_error_level = 1;
25945 rtican_type1_tq_err_sig(2, 0);
25946 rtican_type1_error_level = memory;
25947 break;
25948 }
25949 }
25950
25951 while ((rtican_type1_tq_error[2][0] = can_tp1_channel_all_wakeup
25952 (can_type1_channel_M3_C1)) == DSMCOM_BUFFER_OVERFLOW) {
25953 loop_counter++;
25954 if (loop_counter > MAX_LOOP) {
25955 memory = rtican_type1_error_level;
25956 rtican_type1_error_level = 1;
25957 rtican_type1_tq_err_sig(2, 0);
25958 rtican_type1_error_level = memory;
25959 break;
25960 }
25961 }
25962 }
25963 }
25964
25965 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C1_Trig_ZCE = L4_MABX_B.Selector_p;
25966
25967 /* End of Outputs for SubSystem: '<S15>/CAN_TYPE1_BOR_M3_C1' */
25968
25969 /* RelationalOperator: '<S56>/Operator' */
25970 L4_MABX_B.Operator_ho0 = (L4_MABX_B.Switch1_kd == L4_MABX_ConstB.Width_a);
25971 }
25972
25973 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_5' */
25974
25975 /* S-Function (rti_commonblock): '<S21>/S-Function1' */
25976 /* This comment workarounds a code generation problem */
25977
25978 /* dSPACE RTICAN Status block */
25979 /* ... read status variables of the CAN microcontroller */
25980 {
25981 UInt32 loop_counter, memory, j;
25982 for (j=0;j<=9;j++) {
25983 rtican_type1_tq_error[2][6] = can_tp1_service_read
25984 (can_type1_service_M3_C2[j]);
25985 loop_counter = 0;
25986 while ((rtican_type1_tq_error[2][6] = can_tp1_service_request
25987 (can_type1_service_M3_C2[j]))== DSMCOM_BUFFER_OVERFLOW) {
25988 loop_counter++;
25989 if (loop_counter > MAX_LOOP) {
25990 memory = rtican_type1_error_level;
25991 rtican_type1_error_level = 1;
25992 rtican_type1_tq_err_sig(2, 6);
25993 rtican_type1_error_level = memory;
25994 break;
25995 }
25996 }
25997
25998 if (j==CANTP1_M3_C2_RXLost) {
25999 rtican_type1_tq_error[2][6] = can_tp1_service_read
26000 (can_type1_service_M3_C2[CANTP1_M3_C2_DataLost]);
26001 loop_counter = 0;
26002 while ((rtican_type1_tq_error[2][6] = can_tp1_service_request
26003 (can_type1_service_M3_C2[CANTP1_M3_C2_DataLost]))==
26004 DSMCOM_BUFFER_OVERFLOW) {
26005 loop_counter++;
26006 if (loop_counter > MAX_LOOP) {
26007 memory = rtican_type1_error_level;
26008 rtican_type1_error_level = 1;
26009 rtican_type1_tq_err_sig(2, 6);
26010 rtican_type1_error_level = memory;
26011 break;
26012 }
26013 }
26014 }
26015 }
26016
26017 L4_MABX_B.SFunction1_o1_ar = (UInt32)
26018 can_type1_service_M3_C2[CANTP1_M3_C2_Status]->data0;
26019 DIAG_CAN6_Count_Stuff_Errors = (UInt32)
26020 can_type1_service_M3_C2[CANTP1_M3_C2_StuffErrors]->data0;
26021 DIAG_CAN6_Count_Format_Errors = (UInt32)
26022 can_type1_service_M3_C2[CANTP1_M3_C2_FormatErrors]->data0;
26023 DIAG_CAN6_Count_Ack_Errors = (UInt32)
26024 can_type1_service_M3_C2[CANTP1_M3_C2_AckErrors]->data0;
26025 DIAG_CAN6_Count_Bit0_Errors = (UInt32)
26026 can_type1_service_M3_C2[CANTP1_M3_C2_Bit0Errors]->data0;
26027 DIAG_CAN6_Count_Bit1_Errors = (UInt32)
26028 can_type1_service_M3_C2[CANTP1_M3_C2_Bit1Errors]->data0;
26029 DIAG_CAN6_Count_CRC_Errors = (UInt32)
26030 can_type1_service_M3_C2[CANTP1_M3_C2_CRCErrors]->data0;
26031 DIAG_CAN6_Count_RX_Lost = (UInt32)
26032 (can_type1_service_M3_C2[CANTP1_M3_C2_RXLost]->data0 +
26033 can_type1_service_M3_C2[CANTP1_M3_C2_DataLost]->data0);
26034 DIAG_CAN6_Count_RX_OK = (UInt32) can_type1_service_M3_C2[CANTP1_M3_C2_RXOK
26035 ]->data0;
26036 DIAG_CAN6_Count_TX_OK = (UInt32) can_type1_service_M3_C2[CANTP1_M3_C2_TXOK
26037 ]->data0;
26038 }
26039
26040 /* DataTypeConversion: '<S1>/Data Type Conversion4' */
26041 DIAG_CAN6_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
26042 ((int32_T)L4_MABX_B.SFunction1_o1_ar);
26043
26044 /* RelationalOperator: '<S27>/Operator' incorporates:
26045 * Constant: '<S1>/Constant5'
26046 */
26047 L4_MABX_B.Operator_fv = (L4_MABX_P.Constant5_Value_m == DIAG_CAN6_Status);
26048
26049 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_6' incorporates:
26050 * EnablePort: '<S16>/Enable'
26051 */
26052 if (L4_MABX_B.Operator_fv) {
26053 /* Reshape: '<S60>/Reshape' incorporates:
26054 * Constant: '<S60>/Constant'
26055 */
26056 L4_MABX_B.Reshape_j[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_e[0];
26057 L4_MABX_B.Reshape_j[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_e[1];
26058
26059 /* UnitDelay: '<S60>/Unit_Delay' */
26060 L4_MABX_B.Unit_Delay_mw = L4_MABX_DW.Unit_Delay_DSTATE_l5;
26061
26062 /* UnitDelay: '<S61>/Unit Delay' */
26063 L4_MABX_B.UnitDelay_a = L4_MABX_DW.UnitDelay_DSTATE_dr;
26064
26065 /* Switch: '<S64>/Switch1' incorporates:
26066 * Constant: '<S61>/E'
26067 * Constant: '<S61>/IV'
26068 * Switch: '<S63>/Switch1'
26069 */
26070 if (L4_MABX_B.Unit_Delay_mw) {
26071 L4_MABX_B.Switch1_ht = L4_MABX_P.IV_Value_ey;
26072 } else {
26073 if (L4_MABX_P.E_Value_c) {
26074 /* Sum: '<S61>/Subtract' incorporates:
26075 * Constant: '<S61>/Constant'
26076 * Switch: '<S63>/Switch1'
26077 */
26078 q0 = L4_MABX_P.Constant_Value_iu;
26079 qY = q0 + L4_MABX_B.UnitDelay_a;
26080 if (qY < q0) {
26081 qY = MAX_uint32_T;
26082 }
26083
26084 L4_MABX_B.Subtract_fc = qY;
26085
26086 /* End of Sum: '<S61>/Subtract' */
26087
26088 /* Switch: '<S63>/Switch1' */
26089 L4_MABX_B.Switch1_b = L4_MABX_B.Subtract_fc;
26090 } else {
26091 /* Switch: '<S63>/Switch1' */
26092 L4_MABX_B.Switch1_b = L4_MABX_B.UnitDelay_a;
26093 }
26094
26095 L4_MABX_B.Switch1_ht = L4_MABX_B.Switch1_b;
26096 }
26097
26098 /* End of Switch: '<S64>/Switch1' */
26099
26100 /* Selector: '<S60>/Selector' */
26101 L4_MABX_B.Selector_h = L4_MABX_B.Reshape_j[(int32_T)L4_MABX_B.Switch1_ht - 1];
26102
26103 /* Outputs for Triggered SubSystem: '<S16>/CAN_TYPE1_BOR_M3_C2' incorporates:
26104 * TriggerPort: '<S59>/Trigger'
26105 */
26106 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C2_Trig_ZCE == POS_ZCSIG) !=
26107 (int32_T)L4_MABX_B.Selector_h) &&
26108 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C2_Trig_ZCE !=
26109 UNINITIALIZED_ZCSIG));
26110 if (zcEvent) {
26111 /* S-Function (rti_commonblock): '<S59>/S-Function1' */
26112 /* This comment workarounds a code generation problem */
26113
26114 /* dSPACE RTICAN Bus Off Recovery block */
26115 /* ... Perform software-reset of the CAN microcontroller */
26116 {
26117 UInt32 loop_counter, memory;
26118 loop_counter = 0;
26119 while ((rtican_type1_tq_error[2][0] = can_tp1_channel_BOff_return
26120 (can_type1_channel_M3_C2)) == DSMCOM_BUFFER_OVERFLOW) {
26121 loop_counter++;
26122 if (loop_counter > MAX_LOOP) {
26123 memory = rtican_type1_error_level;
26124 rtican_type1_error_level = 1;
26125 rtican_type1_tq_err_sig(2, 0);
26126 rtican_type1_error_level = memory;
26127 break;
26128 }
26129 }
26130
26131 while ((rtican_type1_tq_error[2][0] = can_tp1_channel_all_wakeup
26132 (can_type1_channel_M3_C2)) == DSMCOM_BUFFER_OVERFLOW) {
26133 loop_counter++;
26134 if (loop_counter > MAX_LOOP) {
26135 memory = rtican_type1_error_level;
26136 rtican_type1_error_level = 1;
26137 rtican_type1_tq_err_sig(2, 0);
26138 rtican_type1_error_level = memory;
26139 break;
26140 }
26141 }
26142 }
26143 }
26144
26145 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C2_Trig_ZCE = L4_MABX_B.Selector_h;
26146
26147 /* End of Outputs for SubSystem: '<S16>/CAN_TYPE1_BOR_M3_C2' */
26148
26149 /* RelationalOperator: '<S62>/Operator' */
26150 L4_MABX_B.Operator_bg = (L4_MABX_B.Switch1_ht == L4_MABX_ConstB.Width);
26151 }
26152
26153 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_6' */
26154
26155 /* S-Function (rti_commonblock): '<S18>/S-Function1' */
26156 /* This comment workarounds a code generation problem */
26157
26158 /* dSPACE RTICAN Status block */
26159 /* ... read status variables of the CAN microcontroller */
26160 {
26161 UInt32 loop_counter, memory, j;
26162 for (j=0;j<=9;j++) {
26163 rtican_type1_tq_error[1][6] = can_tp1_service_read
26164 (can_type1_service_M2_C1[j]);
26165 loop_counter = 0;
26166 while ((rtican_type1_tq_error[1][6] = can_tp1_service_request
26167 (can_type1_service_M2_C1[j]))== DSMCOM_BUFFER_OVERFLOW) {
26168 loop_counter++;
26169 if (loop_counter > MAX_LOOP) {
26170 memory = rtican_type1_error_level;
26171 rtican_type1_error_level = 1;
26172 rtican_type1_tq_err_sig(1, 6);
26173 rtican_type1_error_level = memory;
26174 break;
26175 }
26176 }
26177
26178 if (j==CANTP1_M2_C1_RXLost) {
26179 rtican_type1_tq_error[1][6] = can_tp1_service_read
26180 (can_type1_service_M2_C1[CANTP1_M2_C1_DataLost]);
26181 loop_counter = 0;
26182 while ((rtican_type1_tq_error[1][6] = can_tp1_service_request
26183 (can_type1_service_M2_C1[CANTP1_M2_C1_DataLost]))==
26184 DSMCOM_BUFFER_OVERFLOW) {
26185 loop_counter++;
26186 if (loop_counter > MAX_LOOP) {
26187 memory = rtican_type1_error_level;
26188 rtican_type1_error_level = 1;
26189 rtican_type1_tq_err_sig(1, 6);
26190 rtican_type1_error_level = memory;
26191 break;
26192 }
26193 }
26194 }
26195 }
26196
26197 L4_MABX_B.SFunction1_o1_h4 = (UInt32)
26198 can_type1_service_M2_C1[CANTP1_M2_C1_Status]->data0;
26199 DIAG_CAN3_Count_Stuff_Errors = (UInt32)
26200 can_type1_service_M2_C1[CANTP1_M2_C1_StuffErrors]->data0;
26201 DIAG_CAN3_Count_Format_Errors = (UInt32)
26202 can_type1_service_M2_C1[CANTP1_M2_C1_FormatErrors]->data0;
26203 DIAG_CAN3_Count_Ack_Errors = (UInt32)
26204 can_type1_service_M2_C1[CANTP1_M2_C1_AckErrors]->data0;
26205 DIAG_CAN3_Count_Bit0_Errors = (UInt32)
26206 can_type1_service_M2_C1[CANTP1_M2_C1_Bit0Errors]->data0;
26207 DIAG_CAN3_Count_Bit1_Errors = (UInt32)
26208 can_type1_service_M2_C1[CANTP1_M2_C1_Bit1Errors]->data0;
26209 DIAG_CAN3_Count_CRC_Errors = (UInt32)
26210 can_type1_service_M2_C1[CANTP1_M2_C1_CRCErrors]->data0;
26211 DIAG_CAN3_Count_RX_Lost = (UInt32)
26212 (can_type1_service_M2_C1[CANTP1_M2_C1_RXLost]->data0 +
26213 can_type1_service_M2_C1[CANTP1_M2_C1_DataLost]->data0);
26214 DIAG_CAN3_Count_RX_OK = (UInt32) can_type1_service_M2_C1[CANTP1_M2_C1_RXOK
26215 ]->data0;
26216 DIAG_CAN3_Count_TX_OK = (UInt32) can_type1_service_M2_C1[CANTP1_M2_C1_TXOK
26217 ]->data0;
26218 }
26219
26220 /* DataTypeConversion: '<S1>/Data Type Conversion3' */
26221 DIAG_CAN3_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
26222 ((int32_T)L4_MABX_B.SFunction1_o1_h4);
26223
26224 /* RelationalOperator: '<S24>/Operator' incorporates:
26225 * Constant: '<S1>/Constant1'
26226 */
26227 L4_MABX_B.Operator_bs = (L4_MABX_P.Constant1_Value_c0 == DIAG_CAN3_Status);
26228
26229 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_3' incorporates:
26230 * EnablePort: '<S13>/Enable'
26231 */
26232 if (L4_MABX_B.Operator_bs) {
26233 /* Reshape: '<S42>/Reshape' incorporates:
26234 * Constant: '<S42>/Constant'
26235 */
26236 L4_MABX_B.Reshape_i[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_o[0];
26237 L4_MABX_B.Reshape_i[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_o[1];
26238
26239 /* UnitDelay: '<S42>/Unit_Delay' */
26240 L4_MABX_B.Unit_Delay_m0 = L4_MABX_DW.Unit_Delay_DSTATE_h41;
26241
26242 /* UnitDelay: '<S43>/Unit Delay' */
26243 L4_MABX_B.UnitDelay_d4 = L4_MABX_DW.UnitDelay_DSTATE_dr4;
26244
26245 /* Switch: '<S46>/Switch1' incorporates:
26246 * Constant: '<S43>/E'
26247 * Constant: '<S43>/IV'
26248 * Switch: '<S45>/Switch1'
26249 */
26250 if (L4_MABX_B.Unit_Delay_m0) {
26251 L4_MABX_B.Switch1_k4 = L4_MABX_P.IV_Value_b;
26252 } else {
26253 if (L4_MABX_P.E_Value_d) {
26254 /* Sum: '<S43>/Subtract' incorporates:
26255 * Constant: '<S43>/Constant'
26256 * Switch: '<S45>/Switch1'
26257 */
26258 q0 = L4_MABX_P.Constant_Value_h3;
26259 qY = q0 + L4_MABX_B.UnitDelay_d4;
26260 if (qY < q0) {
26261 qY = MAX_uint32_T;
26262 }
26263
26264 L4_MABX_B.Subtract_h = qY;
26265
26266 /* End of Sum: '<S43>/Subtract' */
26267
26268 /* Switch: '<S45>/Switch1' */
26269 L4_MABX_B.Switch1_fr = L4_MABX_B.Subtract_h;
26270 } else {
26271 /* Switch: '<S45>/Switch1' */
26272 L4_MABX_B.Switch1_fr = L4_MABX_B.UnitDelay_d4;
26273 }
26274
26275 L4_MABX_B.Switch1_k4 = L4_MABX_B.Switch1_fr;
26276 }
26277
26278 /* End of Switch: '<S46>/Switch1' */
26279
26280 /* Selector: '<S42>/Selector' */
26281 L4_MABX_B.Selector_gs = L4_MABX_B.Reshape_i[(int32_T)L4_MABX_B.Switch1_k4 -
26282 1];
26283
26284 /* Outputs for Triggered SubSystem: '<S13>/CAN_TYPE1_BOR_M2_C1' incorporates:
26285 * TriggerPort: '<S41>/Trigger'
26286 */
26287 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C1_Trig_ZCE == POS_ZCSIG) !=
26288 (int32_T)L4_MABX_B.Selector_gs) &&
26289 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C1_Trig_ZCE !=
26290 UNINITIALIZED_ZCSIG));
26291 if (zcEvent) {
26292 /* S-Function (rti_commonblock): '<S41>/S-Function1' */
26293 /* This comment workarounds a code generation problem */
26294
26295 /* dSPACE RTICAN Bus Off Recovery block */
26296 /* ... Perform software-reset of the CAN microcontroller */
26297 {
26298 UInt32 loop_counter, memory;
26299 loop_counter = 0;
26300 while ((rtican_type1_tq_error[1][0] = can_tp1_channel_BOff_return
26301 (can_type1_channel_M2_C1)) == DSMCOM_BUFFER_OVERFLOW) {
26302 loop_counter++;
26303 if (loop_counter > MAX_LOOP) {
26304 memory = rtican_type1_error_level;
26305 rtican_type1_error_level = 1;
26306 rtican_type1_tq_err_sig(1, 0);
26307 rtican_type1_error_level = memory;
26308 break;
26309 }
26310 }
26311
26312 while ((rtican_type1_tq_error[1][0] = can_tp1_channel_all_wakeup
26313 (can_type1_channel_M2_C1)) == DSMCOM_BUFFER_OVERFLOW) {
26314 loop_counter++;
26315 if (loop_counter > MAX_LOOP) {
26316 memory = rtican_type1_error_level;
26317 rtican_type1_error_level = 1;
26318 rtican_type1_tq_err_sig(1, 0);
26319 rtican_type1_error_level = memory;
26320 break;
26321 }
26322 }
26323 }
26324 }
26325
26326 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C1_Trig_ZCE = L4_MABX_B.Selector_gs;
26327
26328 /* End of Outputs for SubSystem: '<S13>/CAN_TYPE1_BOR_M2_C1' */
26329
26330 /* RelationalOperator: '<S44>/Operator' */
26331 L4_MABX_B.Operator_dh = (L4_MABX_B.Switch1_k4 == L4_MABX_ConstB.Width_iw);
26332 }
26333
26334 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_3' */
26335
26336 /* S-Function (rti_commonblock): '<S19>/S-Function1' */
26337 /* This comment workarounds a code generation problem */
26338
26339 /* dSPACE RTICAN Status block */
26340 /* ... read status variables of the CAN microcontroller */
26341 {
26342 UInt32 loop_counter, memory, j;
26343 for (j=0;j<=9;j++) {
26344 rtican_type1_tq_error[1][6] = can_tp1_service_read
26345 (can_type1_service_M2_C2[j]);
26346 loop_counter = 0;
26347 while ((rtican_type1_tq_error[1][6] = can_tp1_service_request
26348 (can_type1_service_M2_C2[j]))== DSMCOM_BUFFER_OVERFLOW) {
26349 loop_counter++;
26350 if (loop_counter > MAX_LOOP) {
26351 memory = rtican_type1_error_level;
26352 rtican_type1_error_level = 1;
26353 rtican_type1_tq_err_sig(1, 6);
26354 rtican_type1_error_level = memory;
26355 break;
26356 }
26357 }
26358
26359 if (j==CANTP1_M2_C2_RXLost) {
26360 rtican_type1_tq_error[1][6] = can_tp1_service_read
26361 (can_type1_service_M2_C2[CANTP1_M2_C2_DataLost]);
26362 loop_counter = 0;
26363 while ((rtican_type1_tq_error[1][6] = can_tp1_service_request
26364 (can_type1_service_M2_C2[CANTP1_M2_C2_DataLost]))==
26365 DSMCOM_BUFFER_OVERFLOW) {
26366 loop_counter++;
26367 if (loop_counter > MAX_LOOP) {
26368 memory = rtican_type1_error_level;
26369 rtican_type1_error_level = 1;
26370 rtican_type1_tq_err_sig(1, 6);
26371 rtican_type1_error_level = memory;
26372 break;
26373 }
26374 }
26375 }
26376 }
26377
26378 L4_MABX_B.SFunction1_o1_ma = (UInt32)
26379 can_type1_service_M2_C2[CANTP1_M2_C2_Status]->data0;
26380 DIAG_CAN4_Count_Stuff_Errors = (UInt32)
26381 can_type1_service_M2_C2[CANTP1_M2_C2_StuffErrors]->data0;
26382 DIAG_CAN4_Count_Format_Errors = (UInt32)
26383 can_type1_service_M2_C2[CANTP1_M2_C2_FormatErrors]->data0;
26384 DIAG_CAN4_Count_Ack_Errors = (UInt32)
26385 can_type1_service_M2_C2[CANTP1_M2_C2_AckErrors]->data0;
26386 DIAG_CAN4_Count_Bit0_Errors = (UInt32)
26387 can_type1_service_M2_C2[CANTP1_M2_C2_Bit0Errors]->data0;
26388 DIAG_CAN4_Count_Bit1_Errors = (UInt32)
26389 can_type1_service_M2_C2[CANTP1_M2_C2_Bit1Errors]->data0;
26390 DIAG_CAN4_Count_CRC_Errors = (UInt32)
26391 can_type1_service_M2_C2[CANTP1_M2_C2_CRCErrors]->data0;
26392 DIAG_CAN4_Count_RX_Lost = (UInt32)
26393 (can_type1_service_M2_C2[CANTP1_M2_C2_RXLost]->data0 +
26394 can_type1_service_M2_C2[CANTP1_M2_C2_DataLost]->data0);
26395 DIAG_CAN4_Count_RX_OK = (UInt32) can_type1_service_M2_C2[CANTP1_M2_C2_RXOK
26396 ]->data0;
26397 DIAG_CAN4_Count_TX_OK = (UInt32) can_type1_service_M2_C2[CANTP1_M2_C2_TXOK
26398 ]->data0;
26399 }
26400
26401 /* DataTypeConversion: '<S1>/Data Type Conversion2' */
26402 DIAG_CAN4_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
26403 ((int32_T)L4_MABX_B.SFunction1_o1_ma);
26404
26405 /* RelationalOperator: '<S25>/Operator' incorporates:
26406 * Constant: '<S1>/Constant3'
26407 */
26408 L4_MABX_B.Operator_bw = (L4_MABX_P.Constant3_Value_hq == DIAG_CAN4_Status);
26409
26410 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_4' incorporates:
26411 * EnablePort: '<S14>/Enable'
26412 */
26413 if (L4_MABX_B.Operator_bw) {
26414 /* Reshape: '<S48>/Reshape' incorporates:
26415 * Constant: '<S48>/Constant'
26416 */
26417 L4_MABX_B.Reshape_n[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_n[0];
26418 L4_MABX_B.Reshape_n[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_n[1];
26419
26420 /* UnitDelay: '<S48>/Unit_Delay' */
26421 L4_MABX_B.Unit_Delay_fl = L4_MABX_DW.Unit_Delay_DSTATE_mq;
26422
26423 /* UnitDelay: '<S49>/Unit Delay' */
26424 L4_MABX_B.UnitDelay_l = L4_MABX_DW.UnitDelay_DSTATE_hi;
26425
26426 /* Switch: '<S52>/Switch1' incorporates:
26427 * Constant: '<S49>/E'
26428 * Constant: '<S49>/IV'
26429 * Switch: '<S51>/Switch1'
26430 */
26431 if (L4_MABX_B.Unit_Delay_fl) {
26432 L4_MABX_B.Switch1_e = L4_MABX_P.IV_Value_k;
26433 } else {
26434 if (L4_MABX_P.E_Value_m) {
26435 /* Sum: '<S49>/Subtract' incorporates:
26436 * Constant: '<S49>/Constant'
26437 * Switch: '<S51>/Switch1'
26438 */
26439 q0 = L4_MABX_P.Constant_Value_o0;
26440 qY = q0 + L4_MABX_B.UnitDelay_l;
26441 if (qY < q0) {
26442 qY = MAX_uint32_T;
26443 }
26444
26445 L4_MABX_B.Subtract_f1 = qY;
26446
26447 /* End of Sum: '<S49>/Subtract' */
26448
26449 /* Switch: '<S51>/Switch1' */
26450 L4_MABX_B.Switch1_c4 = L4_MABX_B.Subtract_f1;
26451 } else {
26452 /* Switch: '<S51>/Switch1' */
26453 L4_MABX_B.Switch1_c4 = L4_MABX_B.UnitDelay_l;
26454 }
26455
26456 L4_MABX_B.Switch1_e = L4_MABX_B.Switch1_c4;
26457 }
26458
26459 /* End of Switch: '<S52>/Switch1' */
26460
26461 /* Selector: '<S48>/Selector' */
26462 L4_MABX_B.Selector_i = L4_MABX_B.Reshape_n[(int32_T)L4_MABX_B.Switch1_e - 1];
26463
26464 /* Outputs for Triggered SubSystem: '<S14>/CAN_TYPE1_BOR_M2_C2' incorporates:
26465 * TriggerPort: '<S47>/Trigger'
26466 */
26467 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C2_Trig_ZCE == POS_ZCSIG) !=
26468 (int32_T)L4_MABX_B.Selector_i) &&
26469 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C2_Trig_ZCE !=
26470 UNINITIALIZED_ZCSIG));
26471 if (zcEvent) {
26472 /* S-Function (rti_commonblock): '<S47>/S-Function1' */
26473 /* This comment workarounds a code generation problem */
26474
26475 /* dSPACE RTICAN Bus Off Recovery block */
26476 /* ... Perform software-reset of the CAN microcontroller */
26477 {
26478 UInt32 loop_counter, memory;
26479 loop_counter = 0;
26480 while ((rtican_type1_tq_error[1][0] = can_tp1_channel_BOff_return
26481 (can_type1_channel_M2_C2)) == DSMCOM_BUFFER_OVERFLOW) {
26482 loop_counter++;
26483 if (loop_counter > MAX_LOOP) {
26484 memory = rtican_type1_error_level;
26485 rtican_type1_error_level = 1;
26486 rtican_type1_tq_err_sig(1, 0);
26487 rtican_type1_error_level = memory;
26488 break;
26489 }
26490 }
26491
26492 while ((rtican_type1_tq_error[1][0] = can_tp1_channel_all_wakeup
26493 (can_type1_channel_M2_C2)) == DSMCOM_BUFFER_OVERFLOW) {
26494 loop_counter++;
26495 if (loop_counter > MAX_LOOP) {
26496 memory = rtican_type1_error_level;
26497 rtican_type1_error_level = 1;
26498 rtican_type1_tq_err_sig(1, 0);
26499 rtican_type1_error_level = memory;
26500 break;
26501 }
26502 }
26503 }
26504 }
26505
26506 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C2_Trig_ZCE = L4_MABX_B.Selector_i;
26507
26508 /* End of Outputs for SubSystem: '<S14>/CAN_TYPE1_BOR_M2_C2' */
26509
26510 /* RelationalOperator: '<S50>/Operator' */
26511 L4_MABX_B.Operator_ou = (L4_MABX_B.Switch1_e == L4_MABX_ConstB.Width_i);
26512 }
26513
26514 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_4' */
26515
26516 /* S-Function (rti_commonblock): '<S17>/S-Function1' */
26517 /* This comment workarounds a code generation problem */
26518
26519 /* dSPACE RTICAN Status block */
26520 /* ... read status variables of the CAN microcontroller */
26521 {
26522 UInt32 loop_counter, memory, j;
26523 for (j=0;j<=9;j++) {
26524 rtican_type1_tq_error[0][6] = can_tp1_service_read
26525 (can_type1_service_M1_C2[j]);
26526 loop_counter = 0;
26527 while ((rtican_type1_tq_error[0][6] = can_tp1_service_request
26528 (can_type1_service_M1_C2[j]))== DSMCOM_BUFFER_OVERFLOW) {
26529 loop_counter++;
26530 if (loop_counter > MAX_LOOP) {
26531 memory = rtican_type1_error_level;
26532 rtican_type1_error_level = 1;
26533 rtican_type1_tq_err_sig(0, 6);
26534 rtican_type1_error_level = memory;
26535 break;
26536 }
26537 }
26538
26539 if (j==CANTP1_M1_C2_RXLost) {
26540 rtican_type1_tq_error[0][6] = can_tp1_service_read
26541 (can_type1_service_M1_C2[CANTP1_M1_C2_DataLost]);
26542 loop_counter = 0;
26543 while ((rtican_type1_tq_error[0][6] = can_tp1_service_request
26544 (can_type1_service_M1_C2[CANTP1_M1_C2_DataLost]))==
26545 DSMCOM_BUFFER_OVERFLOW) {
26546 loop_counter++;
26547 if (loop_counter > MAX_LOOP) {
26548 memory = rtican_type1_error_level;
26549 rtican_type1_error_level = 1;
26550 rtican_type1_tq_err_sig(0, 6);
26551 rtican_type1_error_level = memory;
26552 break;
26553 }
26554 }
26555 }
26556 }
26557
26558 L4_MABX_B.SFunction1_o1_og = (UInt32)
26559 can_type1_service_M1_C2[CANTP1_M1_C2_Status]->data0;
26560 DIAG_CAN2_Count_Stuff_Errors = (UInt32)
26561 can_type1_service_M1_C2[CANTP1_M1_C2_StuffErrors]->data0;
26562 DIAG_CAN2_Count_Format_Errors = (UInt32)
26563 can_type1_service_M1_C2[CANTP1_M1_C2_FormatErrors]->data0;
26564 DIAG_CAN2_Count_Ack_Errors = (UInt32)
26565 can_type1_service_M1_C2[CANTP1_M1_C2_AckErrors]->data0;
26566 DIAG_CAN2_Count_Bit0_Errors = (UInt32)
26567 can_type1_service_M1_C2[CANTP1_M1_C2_Bit0Errors]->data0;
26568 DIAG_CAN2_Count_Bit1_Errors = (UInt32)
26569 can_type1_service_M1_C2[CANTP1_M1_C2_Bit1Errors]->data0;
26570 DIAG_CAN2_Count_CRC_Errors = (UInt32)
26571 can_type1_service_M1_C2[CANTP1_M1_C2_CRCErrors]->data0;
26572 DIAG_CAN2_Count_RX_Lost = (UInt32)
26573 (can_type1_service_M1_C2[CANTP1_M1_C2_RXLost]->data0 +
26574 can_type1_service_M1_C2[CANTP1_M1_C2_DataLost]->data0);
26575 DIAG_CAN2_Count_RX_OK = (UInt32) can_type1_service_M1_C2[CANTP1_M1_C2_RXOK
26576 ]->data0;
26577 DIAG_CAN2_Count_TX_OK = (UInt32) can_type1_service_M1_C2[CANTP1_M1_C2_TXOK
26578 ]->data0;
26579 }
26580
26581 /* DataTypeConversion: '<S1>/Data Type Conversion1' */
26582 DIAG_CAN2_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
26583 ((int32_T)L4_MABX_B.SFunction1_o1_og);
26584
26585 /* RelationalOperator: '<S23>/Operator' incorporates:
26586 * Constant: '<S1>/Constant2'
26587 */
26588 L4_MABX_B.Operator_eb = (L4_MABX_P.Constant2_Value_j2 == DIAG_CAN2_Status);
26589
26590 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_2' incorporates:
26591 * EnablePort: '<S12>/Enable'
26592 */
26593 if (L4_MABX_B.Operator_eb) {
26594 /* Reshape: '<S36>/Reshape' incorporates:
26595 * Constant: '<S36>/Constant'
26596 */
26597 L4_MABX_B.Reshape_a5[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_d[0];
26598 L4_MABX_B.Reshape_a5[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_d[1];
26599
26600 /* UnitDelay: '<S36>/Unit_Delay' */
26601 L4_MABX_B.Unit_Delay_g = L4_MABX_DW.Unit_Delay_DSTATE_je;
26602
26603 /* UnitDelay: '<S37>/Unit Delay' */
26604 L4_MABX_B.UnitDelay_b = L4_MABX_DW.UnitDelay_DSTATE_b;
26605
26606 /* Switch: '<S40>/Switch1' incorporates:
26607 * Constant: '<S37>/E'
26608 * Constant: '<S37>/IV'
26609 * Switch: '<S39>/Switch1'
26610 */
26611 if (L4_MABX_B.Unit_Delay_g) {
26612 L4_MABX_B.Switch1_i = L4_MABX_P.IV_Value_e;
26613 } else {
26614 if (L4_MABX_P.E_Value_l) {
26615 /* Sum: '<S37>/Subtract' incorporates:
26616 * Constant: '<S37>/Constant'
26617 * Switch: '<S39>/Switch1'
26618 */
26619 q0 = L4_MABX_P.Constant_Value_ae;
26620 qY = q0 + L4_MABX_B.UnitDelay_b;
26621 if (qY < q0) {
26622 qY = MAX_uint32_T;
26623 }
26624
26625 L4_MABX_B.Subtract_nc = qY;
26626
26627 /* End of Sum: '<S37>/Subtract' */
26628
26629 /* Switch: '<S39>/Switch1' */
26630 L4_MABX_B.Switch1_hm = L4_MABX_B.Subtract_nc;
26631 } else {
26632 /* Switch: '<S39>/Switch1' */
26633 L4_MABX_B.Switch1_hm = L4_MABX_B.UnitDelay_b;
26634 }
26635
26636 L4_MABX_B.Switch1_i = L4_MABX_B.Switch1_hm;
26637 }
26638
26639 /* End of Switch: '<S40>/Switch1' */
26640
26641 /* Selector: '<S36>/Selector' */
26642 L4_MABX_B.Selector_b = L4_MABX_B.Reshape_a5[(int32_T)L4_MABX_B.Switch1_i - 1];
26643
26644 /* Outputs for Triggered SubSystem: '<S12>/CAN_TYPE1_BOR_M1_C2' incorporates:
26645 * TriggerPort: '<S35>/Trigger'
26646 */
26647 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C2_Trig_ZCE == POS_ZCSIG) !=
26648 (int32_T)L4_MABX_B.Selector_b) &&
26649 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C2_Trig_ZCE !=
26650 UNINITIALIZED_ZCSIG));
26651 if (zcEvent) {
26652 /* S-Function (rti_commonblock): '<S35>/S-Function1' */
26653 /* This comment workarounds a code generation problem */
26654
26655 /* dSPACE RTICAN Bus Off Recovery block */
26656 /* ... Perform software-reset of the CAN microcontroller */
26657 {
26658 UInt32 loop_counter, memory;
26659 loop_counter = 0;
26660 while ((rtican_type1_tq_error[0][0] = can_tp1_channel_BOff_return
26661 (can_type1_channel_M1_C2)) == DSMCOM_BUFFER_OVERFLOW) {
26662 loop_counter++;
26663 if (loop_counter > MAX_LOOP) {
26664 memory = rtican_type1_error_level;
26665 rtican_type1_error_level = 1;
26666 rtican_type1_tq_err_sig(0, 0);
26667 rtican_type1_error_level = memory;
26668 break;
26669 }
26670 }
26671
26672 while ((rtican_type1_tq_error[0][0] = can_tp1_channel_all_wakeup
26673 (can_type1_channel_M1_C2)) == DSMCOM_BUFFER_OVERFLOW) {
26674 loop_counter++;
26675 if (loop_counter > MAX_LOOP) {
26676 memory = rtican_type1_error_level;
26677 rtican_type1_error_level = 1;
26678 rtican_type1_tq_err_sig(0, 0);
26679 rtican_type1_error_level = memory;
26680 break;
26681 }
26682 }
26683 }
26684 }
26685
26686 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C2_Trig_ZCE = L4_MABX_B.Selector_b;
26687
26688 /* End of Outputs for SubSystem: '<S12>/CAN_TYPE1_BOR_M1_C2' */
26689
26690 /* RelationalOperator: '<S38>/Operator' */
26691 L4_MABX_B.Operator_bsv = (L4_MABX_B.Switch1_i == L4_MABX_ConstB.Width_g);
26692 }
26693
26694 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_2' */
26695 /* user code (Output function Trailer for TID5) */
26696
26697 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
26698 /* EventChannel: 0 */
26699 if (tid == 0) {
26700 DSXCP_service(0);
26701 }
26702
26703 /* If subsystem generates rate grouping Output functions,
26704 * when tid is used in Output function for one rate,
26705 * all Output functions include tid as a local variable.
26706 * As result, some Output functions may have unused tid.
26707 */
26708 UNUSED_PARAMETER(tid);
26709}
26710
26711/* Model update function for TID5 */
26712void L4_MABX_update5(void) /* Sample time: [0.5s, 0.0s] */
26713{
26714 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_1' incorporates:
26715 * EnablePort: '<S11>/Enable'
26716 */
26717 if (L4_MABX_B.Operator_eu) {
26718 /* Update for UnitDelay: '<S30>/Unit_Delay' */
26719 L4_MABX_DW.Unit_Delay_DSTATE_f1 = L4_MABX_B.Operator_f5;
26720
26721 /* Update for UnitDelay: '<S31>/Unit Delay' */
26722 L4_MABX_DW.UnitDelay_DSTATE_j1 = L4_MABX_B.Switch1_o;
26723 }
26724
26725 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_1' */
26726
26727 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_5' incorporates:
26728 * EnablePort: '<S15>/Enable'
26729 */
26730 if (L4_MABX_B.Operator_ms) {
26731 /* Update for UnitDelay: '<S54>/Unit_Delay' */
26732 L4_MABX_DW.Unit_Delay_DSTATE_i5 = L4_MABX_B.Operator_ho0;
26733
26734 /* Update for UnitDelay: '<S55>/Unit Delay' */
26735 L4_MABX_DW.UnitDelay_DSTATE_p = L4_MABX_B.Switch1_kd;
26736 }
26737
26738 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_5' */
26739
26740 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_6' incorporates:
26741 * EnablePort: '<S16>/Enable'
26742 */
26743 if (L4_MABX_B.Operator_fv) {
26744 /* Update for UnitDelay: '<S60>/Unit_Delay' */
26745 L4_MABX_DW.Unit_Delay_DSTATE_l5 = L4_MABX_B.Operator_bg;
26746
26747 /* Update for UnitDelay: '<S61>/Unit Delay' */
26748 L4_MABX_DW.UnitDelay_DSTATE_dr = L4_MABX_B.Switch1_ht;
26749 }
26750
26751 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_6' */
26752
26753 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_3' incorporates:
26754 * EnablePort: '<S13>/Enable'
26755 */
26756 if (L4_MABX_B.Operator_bs) {
26757 /* Update for UnitDelay: '<S42>/Unit_Delay' */
26758 L4_MABX_DW.Unit_Delay_DSTATE_h41 = L4_MABX_B.Operator_dh;
26759
26760 /* Update for UnitDelay: '<S43>/Unit Delay' */
26761 L4_MABX_DW.UnitDelay_DSTATE_dr4 = L4_MABX_B.Switch1_k4;
26762 }
26763
26764 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_3' */
26765
26766 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_4' incorporates:
26767 * EnablePort: '<S14>/Enable'
26768 */
26769 if (L4_MABX_B.Operator_bw) {
26770 /* Update for UnitDelay: '<S48>/Unit_Delay' */
26771 L4_MABX_DW.Unit_Delay_DSTATE_mq = L4_MABX_B.Operator_ou;
26772
26773 /* Update for UnitDelay: '<S49>/Unit Delay' */
26774 L4_MABX_DW.UnitDelay_DSTATE_hi = L4_MABX_B.Switch1_e;
26775 }
26776
26777 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_4' */
26778
26779 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_2' incorporates:
26780 * EnablePort: '<S12>/Enable'
26781 */
26782 if (L4_MABX_B.Operator_eb) {
26783 /* Update for UnitDelay: '<S36>/Unit_Delay' */
26784 L4_MABX_DW.Unit_Delay_DSTATE_je = L4_MABX_B.Operator_bsv;
26785
26786 /* Update for UnitDelay: '<S37>/Unit Delay' */
26787 L4_MABX_DW.UnitDelay_DSTATE_b = L4_MABX_B.Switch1_i;
26788 }
26789
26790 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_2' */
26791}
26792
26793/* Model output function for TID6 */
26794void L4_MABX_output6(void) /* Sample time: [1.0s, 0.0s] */
26795{
26796 int_T tid = 6;
26797
26798 /* Outputs for Atomic SubSystem: '<S804>/CAN_TX_1000ms' */
26799
26800 /* DataTypeConversion: '<S816>/Data Type Conversion' incorporates:
26801 * Constant: '<S807>/Constant2'
26802 */
26803 L4_MABX_B.DataTypeConversion_mj = (uint8_T)L4_MABX_P.Constant2_Value_ks;
26804
26805 /* S-Function (sfix_bitop): '<S821>/Operator' */
26806 L4_MABX_B.Operator_jy = (uint8_T)(L4_MABX_B.DataTypeConversion_mj &
26807 L4_MABX_P.Operator_BitMask);
26808
26809 /* DataTypeConversion: '<S821>/DataType' */
26810 L4_MABX_B.DataType_jl = L4_MABX_B.Operator_jy;
26811
26812 /* ArithShift: '<S816>/Shift_Arithmetic 2' */
26813 L4_MABX_B.Shift_Arithmetic2_n = ldexp(L4_MABX_B.DataType_jl, (-3));
26814
26815 /* DataTypeConversion: '<S816>/Data Type Conversion5' */
26816 L4_MABX_B.DataTypeConversion5_id = (L4_MABX_B.Shift_Arithmetic2_n != 0.0);
26817
26818 /* Outputs for Enabled SubSystem: '<S824>/AIR1' incorporates:
26819 * EnablePort: '<S825>/Enable'
26820 */
26821 if (L4_MABX_B.DataTypeConversion5_id) {
26822 /* S-Function (rti_commonblock): '<S825>/S-Function1' */
26823 /* This comment workarounds a code generation problem */
26824
26825 /* dSPACE RTICAN TX Message Block: "AIR1" Id:419343921 */
26826 {
26827 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
26828
26829 Float32 delayTime = 0.0;
26830
26831 /* ... Read status and timestamp info (previous message) */
26832 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]);
26833
26834 /* Convert timestamp */
26835 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->processed) {
26836 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->timestamp =
26837 rtk_dsts_time_to_simtime_convert
26838 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->timestamp);
26839 }
26840
26841 /* Messages with timestamp zero have been received in pause/stop state
26842 and must not be handled.
26843 */
26844 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->timestamp > 0.0) {
26845 L4_MABX_B.SFunction1_o1_l = (real_T)
26846 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->processed;
26847 L4_MABX_B.SFunction1_o2_h5 = (real_T)
26848 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->timestamp;
26849 L4_MABX_B.SFunction1_o3_hw = (real_T)
26850 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->deltatime;
26851 L4_MABX_B.SFunction1_o4_gy = (real_T)
26852 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->delaytime;
26853 }
26854
26855 /* ... Encode Simulink signals of TX and RM blocks*/
26856 {
26857 rtican_Signal_t CAN_Sgn;
26858
26859 /* ...... "PneumaticSupplyPress" (0|8, standard signal, unsigned int, little endian) */
26860 /* Add or substract 0.5 in order to round to nearest integer */
26861 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.PneumaticSupplyPress - ( 0 )
26862 ) / 8 + 0.5);
26863 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26864 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
26865
26866 /* ...... "ParkingAnd_orTrailerAirPress" (8|8, standard signal, unsigned int, little endian) */
26867 /* Add or substract 0.5 in order to round to nearest integer */
26868 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkingAnd_orTrailerAirPress
26869 - ( 0 ) ) / 8 + 0.5);
26870 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26871 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
26872
26873 /* ...... "ServiceBrakeCircuit1AirPress" (16|8, standard signal, unsigned int, little endian) */
26874 /* Add or substract 0.5 in order to round to nearest integer */
26875 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ServiceBrakeCircuit1AirPress
26876 - ( 0 ) ) / 8 + 0.5);
26877 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26878 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
26879
26880 /* ...... "ServiceBrakeCircuit2AirPress" (24|8, standard signal, unsigned int, little endian) */
26881 /* Add or substract 0.5 in order to round to nearest integer */
26882 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ServiceBrakeCircuit2AirPress
26883 - ( 0 ) ) / 8 + 0.5);
26884 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26885 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
26886
26887 /* ...... "AuxEquipmentSupplyPress" (32|8, standard signal, unsigned int, little endian) */
26888 /* Add or substract 0.5 in order to round to nearest integer */
26889 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AuxEquipmentSupplyPress -
26890 ( 0 ) ) / 8 + 0.5);
26891 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26892 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
26893
26894 /* ...... "AirSuspensionSupplyPress" (40|8, standard signal, unsigned int, little endian) */
26895 /* Add or substract 0.5 in order to round to nearest integer */
26896 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AirSuspensionSupplyPress - (
26897 0 ) ) / 8 + 0.5);
26898 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26899 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
26900
26901 /* ...... "AirCompressorStatus" (48|2, standard signal, unsigned int, little endian) */
26902 /* Add or substract 0.5 in order to round to nearest integer */
26903 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AirCompressorStatus ) + 0.5);
26904 CAN_Sgn.UnsignedSgn &= 0x00000003;
26905 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
26906
26907 /* ...... "PowertrainCircuitAirSupplyPress" (56|8, standard signal, unsigned int, little endian) */
26908 /* Add or substract 0.5 in order to round to nearest integer */
26909 CAN_Sgn.UnsignedSgn = (UInt32)
26910 (( L4_MABX_B.PowertrainCircuitAirSupplyPress - ( 0 ) ) / 8 + 0.5);
26911 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26912 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
26913 }
26914
26915 /* mask unused bits with '1' */
26916 CAN_Msg[6] |= 0xFC;
26917
26918 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
26919 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31], 8,
26920 &(CAN_Msg[0]), delayTime);
26921 }
26922 }
26923
26924 /* End of Outputs for SubSystem: '<S824>/AIR1' */
26925
26926 /* S-Function (sfix_bitop): '<S818>/Operator' */
26927 L4_MABX_B.Operator_ft = (uint8_T)(L4_MABX_B.DataTypeConversion_mj &
26928 L4_MABX_P.Operator_BitMask_g);
26929
26930 /* DataTypeConversion: '<S818>/DataType' */
26931 L4_MABX_B.DataType_np = L4_MABX_B.Operator_ft;
26932
26933 /* S-Function (sfix_bitop): '<S819>/Operator' */
26934 L4_MABX_B.Operator_fm = (uint8_T)(L4_MABX_B.DataTypeConversion_mj &
26935 L4_MABX_P.Operator_BitMask_e);
26936
26937 /* DataTypeConversion: '<S819>/DataType' */
26938 L4_MABX_B.DataType_ib = L4_MABX_B.Operator_fm;
26939
26940 /* S-Function (sfix_bitop): '<S820>/Operator' */
26941 L4_MABX_B.Operator_mt = (uint8_T)(L4_MABX_B.DataTypeConversion_mj &
26942 L4_MABX_P.Operator_BitMask_b);
26943
26944 /* DataTypeConversion: '<S820>/DataType' */
26945 L4_MABX_B.DataType_j3 = L4_MABX_B.Operator_mt;
26946
26947 /* S-Function (sfix_bitop): '<S822>/Operator' */
26948 L4_MABX_B.Operator_ks = (uint8_T)(L4_MABX_B.DataTypeConversion_mj &
26949 L4_MABX_P.Operator_BitMask_h);
26950
26951 /* DataTypeConversion: '<S822>/DataType' */
26952 L4_MABX_B.DataType_cd = L4_MABX_B.Operator_ks;
26953
26954 /* S-Function (sfix_bitop): '<S823>/Operator' */
26955 L4_MABX_B.Operator_nm = (uint8_T)(L4_MABX_B.DataTypeConversion_mj &
26956 L4_MABX_P.Operator_BitMask_c);
26957
26958 /* DataTypeConversion: '<S823>/DataType' */
26959 L4_MABX_B.DataType_jj = L4_MABX_B.Operator_nm;
26960
26961 /* DataTypeConversion: '<S816>/Data Type Conversion2' */
26962 L4_MABX_B.DataTypeConversion2_li = (L4_MABX_B.DataType_np != 0);
26963
26964 /* ArithShift: '<S816>/Shift_Arithmetic ' */
26965 L4_MABX_B.Shift_Arithmetic_k = ldexp(L4_MABX_B.DataType_ib, (-1));
26966
26967 /* DataTypeConversion: '<S816>/Data Type Conversion3' */
26968 L4_MABX_B.DataTypeConversion3_ko3 = (L4_MABX_B.Shift_Arithmetic_k != 0.0);
26969
26970 /* ArithShift: '<S816>/Shift_Arithmetic 1' */
26971 L4_MABX_B.Shift_Arithmetic1_d = ldexp(L4_MABX_B.DataType_j3, (-2));
26972
26973 /* DataTypeConversion: '<S816>/Data Type Conversion4' */
26974 L4_MABX_B.DataTypeConversion4_d2i = (L4_MABX_B.Shift_Arithmetic1_d != 0.0);
26975
26976 /* ArithShift: '<S816>/Shift_Arithmetic 3' */
26977 L4_MABX_B.Shift_Arithmetic3_mn = ldexp(L4_MABX_B.DataType_cd, (-4));
26978
26979 /* DataTypeConversion: '<S816>/Data Type Conversion6' */
26980 L4_MABX_B.DataTypeConversion6_e = (L4_MABX_B.Shift_Arithmetic3_mn != 0.0);
26981
26982 /* ArithShift: '<S816>/Shift_Arithmetic 4' */
26983 L4_MABX_B.Shift_Arithmetic4_k = ldexp(L4_MABX_B.DataType_jj, (-5));
26984
26985 /* DataTypeConversion: '<S816>/Data Type Conversion7' */
26986 L4_MABX_B.DataTypeConversion7_l = (L4_MABX_B.Shift_Arithmetic4_k != 0.0);
26987
26988 /* DataTypeConversion: '<S817>/Data Type Conversion' incorporates:
26989 * Constant: '<S807>/Constant1'
26990 */
26991 L4_MABX_B.DataTypeConversion_cw = (uint8_T)L4_MABX_P.Constant1_Value_aru;
26992
26993 /* S-Function (sfix_bitop): '<S829>/Operator' */
26994 L4_MABX_B.Operator_ak = (uint8_T)(L4_MABX_B.DataTypeConversion_cw &
26995 L4_MABX_P.Operator_BitMask_p);
26996
26997 /* DataTypeConversion: '<S829>/DataType' */
26998 L4_MABX_B.DataType_nq = L4_MABX_B.Operator_ak;
26999
27000 /* ArithShift: '<S817>/Shift_Arithmetic 2' */
27001 L4_MABX_B.Shift_Arithmetic2_o = ldexp(L4_MABX_B.DataType_nq, (-3));
27002
27003 /* DataTypeConversion: '<S817>/Data Type Conversion5' */
27004 L4_MABX_B.DataTypeConversion5_n3 = (L4_MABX_B.Shift_Arithmetic2_o != 0.0);
27005
27006 /* Outputs for Enabled SubSystem: '<S832>/AMB' incorporates:
27007 * EnablePort: '<S833>/Enable'
27008 */
27009 if (L4_MABX_B.DataTypeConversion5_n3) {
27010 /* S-Function (rti_commonblock): '<S833>/S-Function1' */
27011 /* This comment workarounds a code generation problem */
27012
27013 /* dSPACE RTICAN TX Message Block: "AMB" Id:419362048 */
27014 {
27015 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
27016
27017 Float32 delayTime = 0.0;
27018
27019 /* ... Read status and timestamp info (previous message) */
27020 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]);
27021
27022 /* Convert timestamp */
27023 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->processed) {
27024 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->timestamp =
27025 rtk_dsts_time_to_simtime_convert
27026 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->timestamp);
27027 }
27028
27029 /* Messages with timestamp zero have been received in pause/stop state
27030 and must not be handled.
27031 */
27032 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->timestamp > 0.0) {
27033 L4_MABX_B.SFunction1_o1_n1 = (real_T)
27034 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->processed;
27035 L4_MABX_B.SFunction1_o2_df = (real_T)
27036 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->timestamp;
27037 L4_MABX_B.SFunction1_o3_o2 = (real_T)
27038 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->deltatime;
27039 L4_MABX_B.SFunction1_o4_l4 = (real_T)
27040 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->delaytime;
27041 }
27042
27043 /* ... Encode Simulink signals of TX and RM blocks*/
27044 {
27045 rtican_Signal_t CAN_Sgn;
27046
27047 /* ...... "BarometricPress" (0|8, standard signal, unsigned int, little endian) */
27048 /* Add or substract 0.5 in order to round to nearest integer */
27049 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.BarometricPress_c - ( 0 ) ) /
27050 0.5 + 0.5);
27051 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27052 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
27053
27054 /* ...... "CabInteriorTemp" (8|16, standard signal, unsigned int, little endian) */
27055 /* Add or substract 0.5 in order to round to nearest integer */
27056 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CabInteriorTemp - ( -273 ) )
27057 / 0.03125 + 0.5);
27058 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
27059 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
27060 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte1;
27061
27062 /* ...... "AmbientAirTemp" (24|16, standard signal, unsigned int, little endian) */
27063 /* Add or substract 0.5 in order to round to nearest integer */
27064 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AmbientAirTemp_k - ( -273 ) )
27065 / 0.03125 + 0.5);
27066 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
27067 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
27068 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte1;
27069
27070 /* ...... "EngAirIntakeTemp" (40|8, standard signal, unsigned int, little endian) */
27071 /* Add or substract 0.5 in order to round to nearest integer */
27072 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.EngAirIntakeTemp - ( -40 ) +
27073 0.5);
27074 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27075 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
27076
27077 /* ...... "RoadSurfaceTemp" (48|16, standard signal, unsigned int, little endian) */
27078 /* Add or substract 0.5 in order to round to nearest integer */
27079 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.RoadSurfaceTemp - ( -273 ) )
27080 / 0.03125 + 0.5);
27081 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
27082 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
27083 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte1;
27084 }
27085
27086 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
27087 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500], 8,
27088 &(CAN_Msg[0]), delayTime);
27089 }
27090 }
27091
27092 /* End of Outputs for SubSystem: '<S832>/AMB' */
27093
27094 /* S-Function (sfix_bitop): '<S826>/Operator' */
27095 L4_MABX_B.Operator_nu = (uint8_T)(L4_MABX_B.DataTypeConversion_cw &
27096 L4_MABX_P.Operator_BitMask_es);
27097
27098 /* DataTypeConversion: '<S826>/DataType' */
27099 L4_MABX_B.DataType_ne = L4_MABX_B.Operator_nu;
27100
27101 /* S-Function (sfix_bitop): '<S827>/Operator' */
27102 L4_MABX_B.Operator_ir = (uint8_T)(L4_MABX_B.DataTypeConversion_cw &
27103 L4_MABX_P.Operator_BitMask_m);
27104
27105 /* DataTypeConversion: '<S827>/DataType' */
27106 L4_MABX_B.DataType_mt = L4_MABX_B.Operator_ir;
27107
27108 /* S-Function (sfix_bitop): '<S828>/Operator' */
27109 L4_MABX_B.Operator_br = (uint8_T)(L4_MABX_B.DataTypeConversion_cw &
27110 L4_MABX_P.Operator_BitMask_d);
27111
27112 /* DataTypeConversion: '<S828>/DataType' */
27113 L4_MABX_B.DataType_e = L4_MABX_B.Operator_br;
27114
27115 /* S-Function (sfix_bitop): '<S830>/Operator' */
27116 L4_MABX_B.Operator_n4w = (uint8_T)(L4_MABX_B.DataTypeConversion_cw &
27117 L4_MABX_P.Operator_BitMask_f);
27118
27119 /* DataTypeConversion: '<S830>/DataType' */
27120 L4_MABX_B.DataType_ay = L4_MABX_B.Operator_n4w;
27121
27122 /* S-Function (sfix_bitop): '<S831>/Operator' */
27123 L4_MABX_B.Operator_nux = (uint8_T)(L4_MABX_B.DataTypeConversion_cw &
27124 L4_MABX_P.Operator_BitMask_o);
27125
27126 /* DataTypeConversion: '<S831>/DataType' */
27127 L4_MABX_B.DataType_jx = L4_MABX_B.Operator_nux;
27128
27129 /* DataTypeConversion: '<S817>/Data Type Conversion2' */
27130 L4_MABX_B.DataTypeConversion2_g5 = (L4_MABX_B.DataType_ne != 0);
27131
27132 /* ArithShift: '<S817>/Shift_Arithmetic ' */
27133 L4_MABX_B.Shift_Arithmetic_a = ldexp(L4_MABX_B.DataType_mt, (-1));
27134
27135 /* DataTypeConversion: '<S817>/Data Type Conversion3' */
27136 L4_MABX_B.DataTypeConversion3_mh = (L4_MABX_B.Shift_Arithmetic_a != 0.0);
27137
27138 /* ArithShift: '<S817>/Shift_Arithmetic 1' */
27139 L4_MABX_B.Shift_Arithmetic1_k = ldexp(L4_MABX_B.DataType_e, (-2));
27140
27141 /* DataTypeConversion: '<S817>/Data Type Conversion4' */
27142 L4_MABX_B.DataTypeConversion4_mz = (L4_MABX_B.Shift_Arithmetic1_k != 0.0);
27143
27144 /* ArithShift: '<S817>/Shift_Arithmetic 3' */
27145 L4_MABX_B.Shift_Arithmetic3_c = ldexp(L4_MABX_B.DataType_ay, (-4));
27146
27147 /* DataTypeConversion: '<S817>/Data Type Conversion6' */
27148 L4_MABX_B.DataTypeConversion6_m = (L4_MABX_B.Shift_Arithmetic3_c != 0.0);
27149
27150 /* ArithShift: '<S817>/Shift_Arithmetic 4' */
27151 L4_MABX_B.Shift_Arithmetic4_a = ldexp(L4_MABX_B.DataType_jx, (-5));
27152
27153 /* DataTypeConversion: '<S817>/Data Type Conversion7' */
27154 L4_MABX_B.DataTypeConversion7_p = (L4_MABX_B.Shift_Arithmetic4_a != 0.0);
27155
27156 /* End of Outputs for SubSystem: '<S804>/CAN_TX_1000ms' */
27157 /* user code (Output function Trailer for TID6) */
27158
27159 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
27160 /* EventChannel: 0 */
27161 if (tid == 0) {
27162 DSXCP_service(0);
27163 }
27164
27165 /* If subsystem generates rate grouping Output functions,
27166 * when tid is used in Output function for one rate,
27167 * all Output functions include tid as a local variable.
27168 * As result, some Output functions may have unused tid.
27169 */
27170 UNUSED_PARAMETER(tid);
27171}
27172
27173/* Model update function for TID6 */
27174void L4_MABX_update6(void) /* Sample time: [1.0s, 0.0s] */
27175{
27176 /* (no update code required) */
27177}
27178
27179/* Model output function for TID7 */
27180void L4_MABX_output7(void) /* Sample time: [5.0s, 0.0s] */
27181{
27182 int_T tid = 7;
27183 int32_T i;
27184 uint16_T tmp;
27185 uint32_T q0;
27186 uint32_T qY;
27187
27188 /* Outputs for Atomic SubSystem: '<S804>/CAN_TX_5000ms' */
27189
27190 /* DataTypeConversion: '<S995>/Data Type Conversion6' incorporates:
27191 * Constant: '<S995>/Enable_TX_RequestDiagMsgFromREAX'
27192 */
27193 L4_MABX_B.DataTypeConversion6_jx = L4_MABX_P.Enable_TX_RequestDiagMsgFromREA;
27194
27195 /* Logic: '<S999>/Operator' */
27196 L4_MABX_B.Operator_bh = (L4_MABX_B.DataTypeConversion6_jx &&
27197 L4_MABX_B.TmpRTBAtOperatorInport2);
27198
27199 /* DataTypeConversion: '<S999>/DataType' */
27200 L4_MABX_B.DataType_lr = L4_MABX_B.Operator_bh;
27201
27202 /* Reshape: '<S1004>/Reshape' incorporates:
27203 * Constant: '<S1004>/Constant'
27204 */
27205 for (i = 0; i < 8; i++) {
27206 L4_MABX_B.Reshape[i] = L4_MABX_P.Repeating_Sequence_Stair_OutVal[i];
27207 }
27208
27209 /* End of Reshape: '<S1004>/Reshape' */
27210
27211 /* UnitDelay: '<S1004>/Unit_Delay' */
27212 L4_MABX_B.Unit_Delay_jv = L4_MABX_DW.Unit_Delay_DSTATE_eg;
27213
27214 /* UnitDelay: '<S1005>/Unit Delay' */
27215 L4_MABX_B.UnitDelay_f = L4_MABX_DW.UnitDelay_DSTATE_h;
27216
27217 /* Switch: '<S1008>/Switch1' incorporates:
27218 * Constant: '<S1005>/E'
27219 * Constant: '<S1005>/IV'
27220 * Switch: '<S1007>/Switch1'
27221 */
27222 if (L4_MABX_B.Unit_Delay_jv) {
27223 L4_MABX_B.Switch1_c = L4_MABX_P.IV_Value_c;
27224 } else {
27225 if (L4_MABX_P.E_Value_f) {
27226 /* Sum: '<S1005>/Subtract' incorporates:
27227 * Constant: '<S1005>/Constant'
27228 * Switch: '<S1007>/Switch1'
27229 */
27230 q0 = L4_MABX_P.Constant_Value_fr;
27231 qY = q0 + L4_MABX_B.UnitDelay_f;
27232 if (qY < q0) {
27233 qY = MAX_uint32_T;
27234 }
27235
27236 L4_MABX_B.Subtract_o3 = qY;
27237
27238 /* End of Sum: '<S1005>/Subtract' */
27239
27240 /* Switch: '<S1007>/Switch1' */
27241 L4_MABX_B.Switch1_me = L4_MABX_B.Subtract_o3;
27242 } else {
27243 /* Switch: '<S1007>/Switch1' */
27244 L4_MABX_B.Switch1_me = L4_MABX_B.UnitDelay_f;
27245 }
27246
27247 L4_MABX_B.Switch1_c = L4_MABX_B.Switch1_me;
27248 }
27249
27250 /* End of Switch: '<S1008>/Switch1' */
27251
27252 /* Selector: '<S1004>/Selector' */
27253 L4_MABX_B.Selector = L4_MABX_B.Reshape[(int32_T)L4_MABX_B.Switch1_c - 1];
27254
27255 /* DataTypeConversion: '<S996>/Data Type Conversion' */
27256 L4_MABX_B.DataTypeConversion_a3 = L4_MABX_B.Selector;
27257
27258 /* S-Function (sfix_bitop): '<S1001>/Operator' */
27259 L4_MABX_B.Operator = L4_MABX_B.DataTypeConversion_a3 &
27260 L4_MABX_P.Operator_BitMask_ek5;
27261
27262 /* DataTypeConversion: '<S1001>/DataType' */
27263 q0 = L4_MABX_B.Operator;
27264 if (q0 > 255U) {
27265 q0 = 255U;
27266 }
27267
27268 L4_MABX_B.DataType_dj = (uint8_T)q0;
27269
27270 /* End of DataTypeConversion: '<S1001>/DataType' */
27271
27272 /* DataTypeConversion: '<S996>/Data Type Conversion3' */
27273 L4_MABX_B.DataTypeConversion3_k = L4_MABX_B.DataType_dj;
27274
27275 /* DataTypeConversion: '<S998>/Data Type Conversion' */
27276 L4_MABX_B.DataTypeConversion_nu = L4_MABX_B.DataTypeConversion3_k;
27277
27278 /* S-Function (sfix_bitop): '<S1002>/Operator' */
27279 L4_MABX_B.Operator_l = L4_MABX_B.DataTypeConversion_a3 &
27280 L4_MABX_P.Operator_BitMask_h5;
27281
27282 /* DataTypeConversion: '<S1002>/DataType' */
27283 q0 = L4_MABX_B.Operator_l;
27284 if (q0 > 65535U) {
27285 q0 = 65535U;
27286 }
27287
27288 L4_MABX_B.DataType_dc = (uint16_T)q0;
27289
27290 /* End of DataTypeConversion: '<S1002>/DataType' */
27291
27292 /* ArithShift: '<S996>/Shift_Arithmetic ' */
27293 L4_MABX_B.Shift_Arithmetic_k5 = (uint16_T)((uint32_T)L4_MABX_B.DataType_dc >>
27294 8);
27295
27296 /* DataTypeConversion: '<S996>/Data Type Conversion1' */
27297 tmp = L4_MABX_B.Shift_Arithmetic_k5;
27298 if (tmp > 255) {
27299 tmp = 255U;
27300 }
27301
27302 L4_MABX_B.DataTypeConversion1_i1 = (uint8_T)tmp;
27303
27304 /* End of DataTypeConversion: '<S996>/Data Type Conversion1' */
27305
27306 /* DataTypeConversion: '<S998>/Data Type Conversion1' */
27307 L4_MABX_B.DataTypeConversion1_g = L4_MABX_B.DataTypeConversion1_i1;
27308
27309 /* S-Function (sfix_bitop): '<S1003>/Operator' */
27310 L4_MABX_B.Operator_a = L4_MABX_B.DataTypeConversion_a3 &
27311 L4_MABX_P.Operator_BitMask_f2c;
27312
27313 /* DataTypeConversion: '<S1003>/DataType' */
27314 L4_MABX_B.DataType_ex = L4_MABX_B.Operator_a;
27315
27316 /* ArithShift: '<S996>/Shift_Arithmetic 1' */
27317 L4_MABX_B.Shift_Arithmetic1_c = L4_MABX_B.DataType_ex >> 16;
27318
27319 /* DataTypeConversion: '<S996>/Data Type Conversion2' */
27320 q0 = L4_MABX_B.Shift_Arithmetic1_c;
27321 if (q0 > 255U) {
27322 q0 = 255U;
27323 }
27324
27325 L4_MABX_B.DataTypeConversion2_fc = (uint8_T)q0;
27326
27327 /* End of DataTypeConversion: '<S996>/Data Type Conversion2' */
27328
27329 /* DataTypeConversion: '<S998>/Data Type Conversion2' */
27330 L4_MABX_B.DataTypeConversion2_m = L4_MABX_B.DataTypeConversion2_fc;
27331
27332 /* Outputs for Enabled SubSystem: '<S998>/RQST_13_E4' incorporates:
27333 * EnablePort: '<S1000>/Enable'
27334 */
27335 if (L4_MABX_B.DataType_lr) {
27336 /* S-Function (rti_commonblock): '<S1000>/S-Function1' */
27337 /* This comment workarounds a code generation problem */
27338
27339 /* dSPACE RTICAN TX Message Block: "RQST_13_E4" Id:417993700 */
27340 {
27341 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
27342
27343 Float32 delayTime = 0.0;
27344
27345 /* ... Read status and timestamp info (previous message) */
27346 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]);
27347
27348 /* Convert timestamp */
27349 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->processed) {
27350 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->timestamp =
27351 rtk_dsts_time_to_simtime_convert
27352 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->timestamp);
27353 }
27354
27355 /* Messages with timestamp zero have been received in pause/stop state
27356 and must not be handled.
27357 */
27358 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->timestamp > 0.0) {
27359 L4_MABX_B.SFunction1_o1_er = (real_T)
27360 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->processed;
27361 L4_MABX_B.SFunction1_o2_l = (real_T)
27362 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->timestamp;
27363 L4_MABX_B.SFunction1_o3_m = (real_T)
27364 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->deltatime;
27365 L4_MABX_B.SFunction1_o4_d = (real_T)
27366 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->delaytime;
27367 }
27368
27369 /* ... Encode Simulink signals of TX and RM blocks*/
27370 {
27371 rtican_Signal_t CAN_Sgn;
27372
27373 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
27374 /* Add or substract 0.5 in order to round to nearest integer */
27375 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_nu ) +
27376 0.5);
27377 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27378 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
27379
27380 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
27381 /* Add or substract 0.5 in order to round to nearest integer */
27382 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_g ) +
27383 0.5);
27384 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27385 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
27386
27387 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
27388 /* Add or substract 0.5 in order to round to nearest integer */
27389 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion2_m ) +
27390 0.5);
27391 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27392 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
27393 }
27394
27395 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
27396 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4], 8,
27397 &(CAN_Msg[0]), delayTime);
27398 }
27399 }
27400
27401 /* End of Outputs for SubSystem: '<S998>/RQST_13_E4' */
27402
27403 /* RelationalOperator: '<S1006>/Operator' */
27404 L4_MABX_B.Operator_j5 = (L4_MABX_B.Switch1_c == L4_MABX_B.Width);
27405
27406 /* End of Outputs for SubSystem: '<S804>/CAN_TX_5000ms' */
27407 /* user code (Output function Trailer for TID7) */
27408
27409 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
27410 /* EventChannel: 0 */
27411 if (tid == 0) {
27412 DSXCP_service(0);
27413 }
27414
27415 /* If subsystem generates rate grouping Output functions,
27416 * when tid is used in Output function for one rate,
27417 * all Output functions include tid as a local variable.
27418 * As result, some Output functions may have unused tid.
27419 */
27420 UNUSED_PARAMETER(tid);
27421}
27422
27423/* Model update function for TID7 */
27424void L4_MABX_update7(void) /* Sample time: [5.0s, 0.0s] */
27425{
27426 /* Update for Atomic SubSystem: '<S804>/CAN_TX_5000ms' */
27427
27428 /* Update for UnitDelay: '<S1004>/Unit_Delay' */
27429 L4_MABX_DW.Unit_Delay_DSTATE_eg = L4_MABX_B.Operator_j5;
27430
27431 /* Update for UnitDelay: '<S1005>/Unit Delay' */
27432 L4_MABX_DW.UnitDelay_DSTATE_h = L4_MABX_B.Switch1_c;
27433
27434 /* End of Update for SubSystem: '<S804>/CAN_TX_5000ms' */
27435}
27436
27437/* Model output function for TID8 */
27438void L4_MABX_output8(void) /* Sample time: [10.0s, 0.0s] */
27439{
27440 int_T tid = 8;
27441
27442 /* user code (Output function Trailer for TID8) */
27443
27444 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
27445 /* EventChannel: 0 */
27446 if (tid == 0) {
27447 DSXCP_service(0);
27448 }
27449
27450 /* If subsystem generates rate grouping Output functions,
27451 * when tid is used in Output function for one rate,
27452 * all Output functions include tid as a local variable.
27453 * As result, some Output functions may have unused tid.
27454 */
27455 UNUSED_PARAMETER(tid);
27456}
27457
27458/* Model update function for TID8 */
27459void L4_MABX_update8(void) /* Sample time: [10.0s, 0.0s] */
27460{
27461 /* (no update code required) */
27462}
27463
27464/* Model output wrapper function for compatibility with a static main program */
27465void L4_MABX_output(int_T tid)
27466{
27467 switch (tid) {
27468 case 0 :
27469 L4_MABX_output0();
27470 break;
27471
27472 case 1 :
27473 L4_MABX_output1();
27474 break;
27475
27476 case 2 :
27477 L4_MABX_output2();
27478 break;
27479
27480 case 3 :
27481 L4_MABX_output3();
27482 break;
27483
27484 case 4 :
27485 L4_MABX_output4();
27486 break;
27487
27488 case 5 :
27489 L4_MABX_output5();
27490 break;
27491
27492 case 6 :
27493 L4_MABX_output6();
27494 break;
27495
27496 case 7 :
27497 L4_MABX_output7();
27498 break;
27499
27500 case 8 :
27501 L4_MABX_output8();
27502 break;
27503
27504 default :
27505 break;
27506 }
27507}
27508
27509/* Model update wrapper function for compatibility with a static main program */
27510void L4_MABX_update(int_T tid)
27511{
27512 switch (tid) {
27513 case 0 :
27514 L4_MABX_update0();
27515 break;
27516
27517 case 1 :
27518 L4_MABX_update1();
27519 break;
27520
27521 case 2 :
27522 L4_MABX_update2();
27523 break;
27524
27525 case 3 :
27526 L4_MABX_update3();
27527 break;
27528
27529 case 4 :
27530 L4_MABX_update4();
27531 break;
27532
27533 case 5 :
27534 L4_MABX_update5();
27535 break;
27536
27537 case 6 :
27538 L4_MABX_update6();
27539 break;
27540
27541 case 7 :
27542 L4_MABX_update7();
27543 break;
27544
27545 case 8 :
27546 L4_MABX_update8();
27547 break;
27548
27549 default :
27550 break;
27551 }
27552}
27553
27554/* Model initialize function */
27555void L4_MABX_initialize(void)
27556{
27557 /* Registration code */
27558
27559 /* initialize non-finites */
27560 rt_InitInfAndNaN(sizeof(real_T));
27561
27562 /* non-finite (run-time) assignments */
27563 L4_MABX_P.Saturation_UpperSat = rtInf;
27564 L4_MABX_P.Saturation_UpperSat_o = rtInf;
27565 L4_MABX_P.Saturation_UpperSat_f = rtInf;
27566 L4_MABX_P.Saturation1_UpperSat_j = rtInf;
27567 L4_MABX_P.Saturation_UpperSat_l = rtInf;
27568 L4_MABX_P.Saturation_UpperSat_o1 = rtInf;
27569 L4_MABX_P.Saturation_UpperSat_d = rtInf;
27570 L4_MABX_P.Saturation_UpperSat_ok = rtInf;
27571 L4_MABX_P.Saturation_UpperSat_j = rtInf;
27572 L4_MABX_P.Saturation_UpperSat_m = rtInf;
27573 L4_MABX_P.Calculate_D_term_h.Saturation_UpperSat = rtInf;
27574 L4_MABX_P.Calculate_D_term_p.Saturation_UpperSat = rtInf;
27575 L4_MABX_P.Calculate_D_term.Saturation_UpperSat = rtInf;
27576
27577 /* initialize real-time model */
27578 (void) memset((void *)L4_MABX_M, 0,
27579 sizeof(RT_MODEL_L4_MABX_T));
27580 (L4_MABX_M)->Timing.TaskCounters.cLimit[0] = 1;
27581 (L4_MABX_M)->Timing.TaskCounters.cLimit[1] = 2;
27582 (L4_MABX_M)->Timing.TaskCounters.cLimit[2] = 5;
27583 (L4_MABX_M)->Timing.TaskCounters.cLimit[3] = 10;
27584 (L4_MABX_M)->Timing.TaskCounters.cLimit[4] = 25;
27585 (L4_MABX_M)->Timing.TaskCounters.cLimit[5] = 50;
27586 (L4_MABX_M)->Timing.TaskCounters.cLimit[6] = 100;
27587 (L4_MABX_M)->Timing.TaskCounters.cLimit[7] = 500;
27588 (L4_MABX_M)->Timing.TaskCounters.cLimit[8] = 1000;
27589 rtsiSetSolverName(&L4_MABX_M->solverInfo,"FixedStepDiscrete");
27590 L4_MABX_M->solverInfoPtr = (&L4_MABX_M->solverInfo);
27591
27592 /* Initialize timing info */
27593 {
27594 int_T *mdlTsMap = L4_MABX_M->Timing.sampleTimeTaskIDArray;
27595 int_T i;
27596 for (i = 0; i < 9; i++) {
27597 mdlTsMap[i] = i;
27598 }
27599
27600 L4_MABX_M->Timing.sampleTimeTaskIDPtr = (&mdlTsMap[0]);
27601 L4_MABX_M->Timing.sampleTimes = (&L4_MABX_M->Timing.sampleTimesArray[0]);
27602 L4_MABX_M->Timing.offsetTimes = (&L4_MABX_M->Timing.offsetTimesArray[0]);
27603
27604 /* task periods */
27605 L4_MABX_M->Timing.sampleTimes[0] = (0.01);
27606 L4_MABX_M->Timing.sampleTimes[1] = (0.02);
27607 L4_MABX_M->Timing.sampleTimes[2] = (0.05);
27608 L4_MABX_M->Timing.sampleTimes[3] = (0.1);
27609 L4_MABX_M->Timing.sampleTimes[4] = (0.25);
27610 L4_MABX_M->Timing.sampleTimes[5] = (0.5);
27611 L4_MABX_M->Timing.sampleTimes[6] = (1.0);
27612 L4_MABX_M->Timing.sampleTimes[7] = (5.0);
27613 L4_MABX_M->Timing.sampleTimes[8] = (10.0);
27614
27615 /* task offsets */
27616 L4_MABX_M->Timing.offsetTimes[0] = (0.0);
27617 L4_MABX_M->Timing.offsetTimes[1] = (0.0);
27618 L4_MABX_M->Timing.offsetTimes[2] = (0.0);
27619 L4_MABX_M->Timing.offsetTimes[3] = (0.0);
27620 L4_MABX_M->Timing.offsetTimes[4] = (0.0);
27621 L4_MABX_M->Timing.offsetTimes[5] = (0.0);
27622 L4_MABX_M->Timing.offsetTimes[6] = (0.0);
27623 L4_MABX_M->Timing.offsetTimes[7] = (0.0);
27624 L4_MABX_M->Timing.offsetTimes[8] = (0.0);
27625 }
27626
27627 rtmSetTPtr(L4_MABX_M, &L4_MABX_M->Timing.tArray[0]);
27628
27629 {
27630 int_T *mdlSampleHits = L4_MABX_M->Timing.sampleHitArray;
27631 int_T *mdlPerTaskSampleHits = L4_MABX_M->Timing.perTaskSampleHitsArray;
27632 L4_MABX_M->Timing.perTaskSampleHits = (&mdlPerTaskSampleHits[0]);
27633 mdlSampleHits[0] = 1;
27634 L4_MABX_M->Timing.sampleHits = (&mdlSampleHits[0]);
27635 }
27636
27637 rtmSetTFinal(L4_MABX_M, -1);
27638 L4_MABX_M->Timing.stepSize0 = 0.01;
27639 L4_MABX_M->Timing.stepSize9 = 2.3283064365386963E-10;
27640 L4_MABX_M->Timing.stepSize10 = 2.3283064365386963E-10;
27641 L4_MABX_M->Timing.stepSize11 = 2.3283064365386963E-10;
27642 L4_MABX_M->solverInfoPtr = (&L4_MABX_M->solverInfo);
27643 L4_MABX_M->Timing.stepSize = (0.01);
27644 rtsiSetFixedStepSize(&L4_MABX_M->solverInfo, 0.01);
27645 rtsiSetSolverMode(&L4_MABX_M->solverInfo, SOLVER_MODE_MULTITASKING);
27646
27647 /* block I/O */
27648 (void) memset(((void *) &L4_MABX_B), 0,
27649 sizeof(B_L4_MABX_T));
27650
27651 {
27652 L4_MABX_B.EPBPCMInhibitStatusFeedback = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
27653 L4_MABX_B.EPBPCMInhibitStatusFeedback_c = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
27654 L4_MABX_B.EPBPCMManualStatusFeedback = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
27655 L4_MABX_B.EPBPCMManualStatusFeedback_c = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
27656 L4_MABX_B.EPBPCMInhibitStatusFeedback_f = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
27657 L4_MABX_B.EPBPCMInhibitStatusFeedback_e = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
27658 L4_MABX_B.EPBPCMManualStatusFeedback_o = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
27659 L4_MABX_B.EPBPCMManualStatusFeedback_cb = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
27660 L4_MABX_B.XPRErrorState = ENUM_XPR_ERROR_STATE_T_XPR_OK;
27661 L4_MABX_B.XPRErrorState_a = ENUM_XPR_ERROR_STATE_T_XPR_OK;
27662 L4_MABX_B.XPRControlMode = ENUM_XPR_CONTROL_MODE_T_NO_BRAKE_DEMAND;
27663 L4_MABX_B.XPRControlMode_d = ENUM_XPR_CONTROL_MODE_T_NO_BRAKE_DEMAND;
27664 L4_MABX_B.XBRPassThroughActive = ENUM_XBR_PASS_THROUGH_ACTIVE_T_NOT_ACTIVE;
27665 L4_MABX_B.DataTypeConversion_lrn = ENUM_SWITCH_T_OFF;
27666 L4_MABX_B.DataTypeConversion1_l = ENUM_SWITCH_T_OFF;
27667 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
27668 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
27669 L4_MABX_B.BrkPedArbBrakeSwitch = ENUM_J1939_SWITCH_T_OFF;
27670 L4_MABX_B.BrkPedArbBrakeSwitch_c = ENUM_J1939_SWITCH_T_OFF;
27671 L4_MABX_B.DataTypeConversion1_cy = ENUM_J1939_SWITCH_T_OFF;
27672 L4_MABX_B.DataTypeConversion3_l = ENUM_J1939_SWITCH_T_OFF;
27673 L4_MABX_B.VehCtrlState = ENUM_AUTO_CTRL_VEHICLE_STATE_T_NOT_AVAILABLE;
27674 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_NOT_AVAILABLE;
27675 L4_MABX_B.If_Then_Else_ou.XBRPriority = ENUM_XBR_PRIORITY_T_HIGHEST_PRIORITY;
27676 L4_MABX_B.If_Then_Else_ou.XBRPassThroughActive =
27677 ENUM_XBR_PASS_THROUGH_ACTIVE_T_NOT_ACTIVE;
27678 L4_MABX_B.If_Then_Else_ou.XBREnduranceBrakeIntegrationMod =
27679 ENUM_XBR_EBI_MODE_T_NO_EBI_ALLOWED;
27680 L4_MABX_B.If_Then_Else_ou.XBRControlMode =
27681 ENUM_XBR_CONTROL_MODE_T_OVERRIDE_DISABLED;
27682 }
27683
27684 /* exported global signals */
27685 GLB_Absolute_Timestamp = 0.0;
27686 ReAX_ActualHandwheelPos = 0.0;
27687 EthernetLinkStatus = 0.0;
27688 CurrentAzimuth_rad = 0.0;
27689 TargetAzimuth_rad = 0.0;
27690 TargetVelocity_kph = 0.0;
27691 Curvature = 0.0;
27692 CurrentVelocity_kph = 0.0;
27693 CrosstrackError = 0.0;
27694 GPS_X = 0.0;
27695 GPS_Y = 0.0;
27696 GPS_Time = 0.0;
27697 ReAX_EchoedSteerWheelPos = 0.0;
27698 SteerWheelAngle = 0.0;
27699 YawRate = 0.0;
27700 SPN1810_LongitudinalAcceleration = 0.0;
27701 WheelBasedVehicleSpeed = 0.0;
27702 BrakeSwitch = 0.0;
27703 Lateral_Control_Output = 0.0;
27704 Lateral_Control_Rate_Limiter_Output = 0.0;
27705 SteerCommandDeg = 0.0;
27706 DesiredSteeringAngle = 0.0;
27707 DIAG_CAN1_Count_Stuff_Errors = 0U;
27708 DIAG_CAN1_Count_Format_Errors = 0U;
27709 DIAG_CAN1_Count_Ack_Errors = 0U;
27710 DIAG_CAN1_Count_Bit0_Errors = 0U;
27711 DIAG_CAN1_Count_Bit1_Errors = 0U;
27712 DIAG_CAN1_Count_CRC_Errors = 0U;
27713 DIAG_CAN1_Count_RX_Lost = 0U;
27714 DIAG_CAN1_Count_RX_OK = 0U;
27715 DIAG_CAN1_Count_TX_OK = 0U;
27716 DIAG_CAN5_Count_Stuff_Errors = 0U;
27717 DIAG_CAN5_Count_Format_Errors = 0U;
27718 DIAG_CAN5_Count_Ack_Errors = 0U;
27719 DIAG_CAN5_Count_Bit0_Errors = 0U;
27720 DIAG_CAN5_Count_Bit1_Errors = 0U;
27721 DIAG_CAN5_Count_CRC_Errors = 0U;
27722 DIAG_CAN5_Count_RX_Lost = 0U;
27723 DIAG_CAN5_Count_RX_OK = 0U;
27724 DIAG_CAN5_Count_TX_OK = 0U;
27725 DIAG_CAN6_Count_Stuff_Errors = 0U;
27726 DIAG_CAN6_Count_Format_Errors = 0U;
27727 DIAG_CAN6_Count_Ack_Errors = 0U;
27728 DIAG_CAN6_Count_Bit0_Errors = 0U;
27729 DIAG_CAN6_Count_Bit1_Errors = 0U;
27730 DIAG_CAN6_Count_CRC_Errors = 0U;
27731 DIAG_CAN6_Count_RX_Lost = 0U;
27732 DIAG_CAN6_Count_RX_OK = 0U;
27733 DIAG_CAN6_Count_TX_OK = 0U;
27734 DIAG_CAN3_Count_Stuff_Errors = 0U;
27735 DIAG_CAN3_Count_Format_Errors = 0U;
27736 DIAG_CAN3_Count_Ack_Errors = 0U;
27737 DIAG_CAN3_Count_Bit0_Errors = 0U;
27738 DIAG_CAN3_Count_Bit1_Errors = 0U;
27739 DIAG_CAN3_Count_CRC_Errors = 0U;
27740 DIAG_CAN3_Count_RX_Lost = 0U;
27741 DIAG_CAN3_Count_RX_OK = 0U;
27742 DIAG_CAN3_Count_TX_OK = 0U;
27743 DIAG_CAN4_Count_Stuff_Errors = 0U;
27744 DIAG_CAN4_Count_Format_Errors = 0U;
27745 DIAG_CAN4_Count_Ack_Errors = 0U;
27746 DIAG_CAN4_Count_Bit0_Errors = 0U;
27747 DIAG_CAN4_Count_Bit1_Errors = 0U;
27748 DIAG_CAN4_Count_CRC_Errors = 0U;
27749 DIAG_CAN4_Count_RX_Lost = 0U;
27750 DIAG_CAN4_Count_RX_OK = 0U;
27751 DIAG_CAN4_Count_TX_OK = 0U;
27752 DIAG_CAN2_Count_Stuff_Errors = 0U;
27753 DIAG_CAN2_Count_Format_Errors = 0U;
27754 DIAG_CAN2_Count_Ack_Errors = 0U;
27755 DIAG_CAN2_Count_Bit0_Errors = 0U;
27756 DIAG_CAN2_Count_Bit1_Errors = 0U;
27757 DIAG_CAN2_Count_CRC_Errors = 0U;
27758 DIAG_CAN2_Count_RX_Lost = 0U;
27759 DIAG_CAN2_Count_RX_OK = 0U;
27760 DIAG_CAN2_Count_TX_OK = 0U;
27761 REAX_Handwheel_Torque = 0.0F;
27762 REAX_Handwheel_Velocity = 0.0F;
27763 REAX_Pull_Compensation = 0.0F;
27764 DIAG_CAN1_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
27765 DIAG_CAN5_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
27766 DIAG_CAN6_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
27767 DIAG_CAN3_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
27768 DIAG_CAN4_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
27769 DIAG_CAN2_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
27770 SupervisorMode = 0U;
27771 REAX_Current_Mode = 0U;
27772 REAX_Req_Mode = 0U;
27773 REAX_Status = 0U;
27774
27775 {
27776 int32_T i;
27777 for (i = 0; i < 100; i++) {
27778 GLB_SWVERSION_CPV_[i] = ((uint8_T)0U);
27779 }
27780 }
27781
27782 MABX_Mode = 0U;
27783 EStop = false;
27784 EnableSw = false;
27785 RTMapsOk = false;
27786 EngagePB = false;
27787 AutonomousEnabled = false;
27788 AutonomousOutputEnabled = false;
27789 RateLimiterActive = false;
27790 Pedal_pwm_position = 0.0;
27791
27792 /* states (dwork) */
27793 (void) memset((void *)&L4_MABX_DW, 0,
27794 sizeof(DW_L4_MABX_T));
27795
27796 /* child S-Function registration */
27797 {
27798 RTWSfcnInfo *sfcnInfo = &L4_MABX_M->NonInlinedSFcns.sfcnInfo;
27799 L4_MABX_M->sfcnInfo = (sfcnInfo);
27800 rtssSetErrorStatusPtr(sfcnInfo, (&rtmGetErrorStatus(L4_MABX_M)));
27801 rtssSetNumRootSampTimesPtr(sfcnInfo, &L4_MABX_M->Sizes.numSampTimes);
27802 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[0] = &(rtmGetTPtr(L4_MABX_M)[0]);
27803 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[1] = &(rtmGetTPtr(L4_MABX_M)[1]);
27804 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[2] = &(rtmGetTPtr(L4_MABX_M)[2]);
27805 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[3] = &(rtmGetTPtr(L4_MABX_M)[3]);
27806 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[4] = &(rtmGetTPtr(L4_MABX_M)[4]);
27807 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[5] = &(rtmGetTPtr(L4_MABX_M)[5]);
27808 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[6] = &(rtmGetTPtr(L4_MABX_M)[6]);
27809 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[7] = &(rtmGetTPtr(L4_MABX_M)[7]);
27810 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[8] = &(rtmGetTPtr(L4_MABX_M)[8]);
27811 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[9] = &(rtmGetTPtr(L4_MABX_M)[9]);
27812 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[10] = &(rtmGetTPtr(L4_MABX_M)[10]);
27813 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[11] = &(rtmGetTPtr(L4_MABX_M)[11]);
27814 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[12] = &(rtmGetTPtr(L4_MABX_M)[12]);
27815 rtssSetTPtrPtr(sfcnInfo,L4_MABX_M->NonInlinedSFcns.taskTimePtrs);
27816 rtssSetTStartPtr(sfcnInfo, &rtmGetTStart(L4_MABX_M));
27817 rtssSetTFinalPtr(sfcnInfo, &rtmGetTFinal(L4_MABX_M));
27818 rtssSetTimeOfLastOutputPtr(sfcnInfo, &rtmGetTimeOfLastOutput(L4_MABX_M));
27819 rtssSetStepSizePtr(sfcnInfo, &L4_MABX_M->Timing.stepSize);
27820 rtssSetStopRequestedPtr(sfcnInfo, &rtmGetStopRequested(L4_MABX_M));
27821 rtssSetDerivCacheNeedsResetPtr(sfcnInfo, &L4_MABX_M->derivCacheNeedsReset);
27822 rtssSetZCCacheNeedsResetPtr(sfcnInfo, &L4_MABX_M->zCCacheNeedsReset);
27823 rtssSetContTimeOutputInconsistentWithStateAtMajorStepPtr(sfcnInfo,
27824 &L4_MABX_M->CTOutputIncnstWithState);
27825 rtssSetSampleHitsPtr(sfcnInfo, &L4_MABX_M->Timing.sampleHits);
27826 rtssSetPerTaskSampleHitsPtr(sfcnInfo, &L4_MABX_M->Timing.perTaskSampleHits);
27827 rtssSetSimModePtr(sfcnInfo, &L4_MABX_M->simMode);
27828 rtssSetSolverInfoPtr(sfcnInfo, &L4_MABX_M->solverInfoPtr);
27829 }
27830
27831 L4_MABX_M->Sizes.numSFcns = (5);
27832
27833 /* register each child */
27834 {
27835 (void) memset((void *)&L4_MABX_M->NonInlinedSFcns.childSFunctions[0], 0,
27836 5*sizeof(SimStruct));
27837 L4_MABX_M->childSfunctions = (&L4_MABX_M->
27838 NonInlinedSFcns.childSFunctionPtrs[0]);
27839
27840 {
27841 int_T i;
27842 for (i = 0; i < 5; i++) {
27843 L4_MABX_M->childSfunctions[i] =
27844 (&L4_MABX_M->NonInlinedSFcns.childSFunctions[i]);
27845 }
27846 }
27847
27848 /* Level2 S-Function Block: L4_MABX/<S395>/dsa_tcpip_bkg_sfcn (dsa_tcpip_bkg_sfcn) */
27849 {
27850 SimStruct *rts = L4_MABX_M->childSfunctions[0];
27851
27852 /* timing info */
27853 time_T *sfcnPeriod = L4_MABX_M->NonInlinedSFcns.Sfcn0.sfcnPeriod;
27854 time_T *sfcnOffset = L4_MABX_M->NonInlinedSFcns.Sfcn0.sfcnOffset;
27855 int_T *sfcnTsMap = L4_MABX_M->NonInlinedSFcns.Sfcn0.sfcnTsMap;
27856 (void) memset((void*)sfcnPeriod, 0,
27857 sizeof(time_T)*1);
27858 (void) memset((void*)sfcnOffset, 0,
27859 sizeof(time_T)*1);
27860 ssSetSampleTimePtr(rts, &sfcnPeriod[0]);
27861 ssSetOffsetTimePtr(rts, &sfcnOffset[0]);
27862 ssSetSampleTimeTaskIDPtr(rts, sfcnTsMap);
27863
27864 {
27865 ssSetBlkInfo2Ptr(rts, &L4_MABX_M->NonInlinedSFcns.blkInfo2[0]);
27866 }
27867
27868 _ssSetBlkInfo2PortInfo2Ptr(rts,
27869 &L4_MABX_M->NonInlinedSFcns.inputOutputPortInfo2[0]);
27870
27871 /* Set up the mdlInfo pointer */
27872 ssSetRTWSfcnInfo(rts, L4_MABX_M->sfcnInfo);
27873
27874 /* Allocate memory of model methods 2 */
27875 {
27876 ssSetModelMethods2(rts, &L4_MABX_M->NonInlinedSFcns.methods2[0]);
27877 }
27878
27879 /* Allocate memory of model methods 3 */
27880 {
27881 ssSetModelMethods3(rts, &L4_MABX_M->NonInlinedSFcns.methods3[0]);
27882 }
27883
27884 /* Allocate memory of model methods 4 */
27885 {
27886 ssSetModelMethods4(rts, &L4_MABX_M->NonInlinedSFcns.methods4[0]);
27887 }
27888
27889 /* Allocate memory for states auxilliary information */
27890 {
27891 ssSetStatesInfo2(rts, &L4_MABX_M->NonInlinedSFcns.statesInfo2[0]);
27892 ssSetPeriodicStatesInfo(rts,
27893 &L4_MABX_M->NonInlinedSFcns.periodicStatesInfo[0]);
27894 }
27895
27896 /* path info */
27897 ssSetModelName(rts, "dsa_tcpip_bkg_sfcn");
27898 ssSetPath(rts,
27899 "L4_MABX/ETHERNET/TCPIP_Setup/Background_Task/dsa_tcpip_bkg_sfcn");
27900 ssSetRTModel(rts,L4_MABX_M);
27901 ssSetParentSS(rts, (NULL));
27902 ssSetRootSS(rts, rts);
27903 ssSetVersion(rts, SIMSTRUCT_VERSION_LEVEL2);
27904
27905 /* work vectors */
27906 ssSetIWork(rts, (int_T *) &L4_MABX_DW.dsa_tcpip_bkg_sfcn_IWORK);
27907
27908 {
27909 struct _ssDWorkRecord *dWorkRecord = (struct _ssDWorkRecord *)
27910 &L4_MABX_M->NonInlinedSFcns.Sfcn0.dWork;
27911 struct _ssDWorkAuxRecord *dWorkAuxRecord = (struct _ssDWorkAuxRecord *)
27912 &L4_MABX_M->NonInlinedSFcns.Sfcn0.dWorkAux;
27913 ssSetSFcnDWork(rts, dWorkRecord);
27914 ssSetSFcnDWorkAux(rts, dWorkAuxRecord);
27915 _ssSetNumDWork(rts, 1);
27916
27917 /* IWORK */
27918 ssSetDWorkWidth(rts, 0, 1);
27919 ssSetDWorkDataType(rts, 0,SS_INTEGER);
27920 ssSetDWorkComplexSignal(rts, 0, 0);
27921 ssSetDWork(rts, 0, &L4_MABX_DW.dsa_tcpip_bkg_sfcn_IWORK);
27922 }
27923
27924 /* registration */
27925 dsa_tcpip_bkg_sfcn(rts);
27926 sfcnInitializeSizes(rts);
27927 sfcnInitializeSampleTimes(rts);
27928
27929 /* adjust sample time */
27930 ssSetSampleTime(rts, 0, -1.0);
27931 ssSetOffsetTime(rts, 0, -2.0);
27932 sfcnTsMap[0] = 9;
27933
27934 /* set compiled values of dynamic vector attributes */
27935 ssSetNumNonsampledZCs(rts, 0);
27936
27937 /* Update connectivity flags for each port */
27938 /* Update the BufferDstPort flags for each input port */
27939 }
27940
27941 /* Level2 S-Function Block: L4_MABX/<S396>/dsa_tcpip_irq_l2_sfcn (dsa_tcpip_irq_l2_sfcn) */
27942 {
27943 SimStruct *rts = L4_MABX_M->childSfunctions[1];
27944
27945 /* timing info */
27946 time_T *sfcnPeriod = L4_MABX_M->NonInlinedSFcns.Sfcn1.sfcnPeriod;
27947 time_T *sfcnOffset = L4_MABX_M->NonInlinedSFcns.Sfcn1.sfcnOffset;
27948 int_T *sfcnTsMap = L4_MABX_M->NonInlinedSFcns.Sfcn1.sfcnTsMap;
27949 (void) memset((void*)sfcnPeriod, 0,
27950 sizeof(time_T)*1);
27951 (void) memset((void*)sfcnOffset, 0,
27952 sizeof(time_T)*1);
27953 ssSetSampleTimePtr(rts, &sfcnPeriod[0]);
27954 ssSetOffsetTimePtr(rts, &sfcnOffset[0]);
27955 ssSetSampleTimeTaskIDPtr(rts, sfcnTsMap);
27956
27957 {
27958 ssSetBlkInfo2Ptr(rts, &L4_MABX_M->NonInlinedSFcns.blkInfo2[1]);
27959 }
27960
27961 _ssSetBlkInfo2PortInfo2Ptr(rts,
27962 &L4_MABX_M->NonInlinedSFcns.inputOutputPortInfo2[1]);
27963
27964 /* Set up the mdlInfo pointer */
27965 ssSetRTWSfcnInfo(rts, L4_MABX_M->sfcnInfo);
27966
27967 /* Allocate memory of model methods 2 */
27968 {
27969 ssSetModelMethods2(rts, &L4_MABX_M->NonInlinedSFcns.methods2[1]);
27970 }
27971
27972 /* Allocate memory of model methods 3 */
27973 {
27974 ssSetModelMethods3(rts, &L4_MABX_M->NonInlinedSFcns.methods3[1]);
27975 }
27976
27977 /* Allocate memory of model methods 4 */
27978 {
27979 ssSetModelMethods4(rts, &L4_MABX_M->NonInlinedSFcns.methods4[1]);
27980 }
27981
27982 /* Allocate memory for states auxilliary information */
27983 {
27984 ssSetStatesInfo2(rts, &L4_MABX_M->NonInlinedSFcns.statesInfo2[1]);
27985 ssSetPeriodicStatesInfo(rts,
27986 &L4_MABX_M->NonInlinedSFcns.periodicStatesInfo[1]);
27987 }
27988
27989 /* path info */
27990 ssSetModelName(rts, "dsa_tcpip_irq_l2_sfcn");
27991 ssSetPath(rts,
27992 "L4_MABX/ETHERNET/TCPIP_Setup/IRQ_Level_2_SW_INT/dsa_tcpip_irq_l2_sfcn");
27993 ssSetRTModel(rts,L4_MABX_M);
27994 ssSetParentSS(rts, (NULL));
27995 ssSetRootSS(rts, rts);
27996 ssSetVersion(rts, SIMSTRUCT_VERSION_LEVEL2);
27997
27998 /* registration */
27999 dsa_tcpip_irq_l2_sfcn(rts);
28000 sfcnInitializeSizes(rts);
28001 sfcnInitializeSampleTimes(rts);
28002
28003 /* adjust sample time */
28004 ssSetSampleTime(rts, 0, -1.0);
28005 ssSetOffsetTime(rts, 0, -3.0);
28006 sfcnTsMap[0] = 10;
28007
28008 /* set compiled values of dynamic vector attributes */
28009 ssSetNumNonsampledZCs(rts, 0);
28010
28011 /* Update connectivity flags for each port */
28012 /* Update the BufferDstPort flags for each input port */
28013 }
28014
28015 /* Level2 S-Function Block: L4_MABX/<S397>/dsa_tcpip_irq_l1_sfcn (dsa_tcpip_irq_l1_sfcn) */
28016 {
28017 SimStruct *rts = L4_MABX_M->childSfunctions[2];
28018
28019 /* timing info */
28020 time_T *sfcnPeriod = L4_MABX_M->NonInlinedSFcns.Sfcn2.sfcnPeriod;
28021 time_T *sfcnOffset = L4_MABX_M->NonInlinedSFcns.Sfcn2.sfcnOffset;
28022 int_T *sfcnTsMap = L4_MABX_M->NonInlinedSFcns.Sfcn2.sfcnTsMap;
28023 (void) memset((void*)sfcnPeriod, 0,
28024 sizeof(time_T)*1);
28025 (void) memset((void*)sfcnOffset, 0,
28026 sizeof(time_T)*1);
28027 ssSetSampleTimePtr(rts, &sfcnPeriod[0]);
28028 ssSetOffsetTimePtr(rts, &sfcnOffset[0]);
28029 ssSetSampleTimeTaskIDPtr(rts, sfcnTsMap);
28030
28031 {
28032 ssSetBlkInfo2Ptr(rts, &L4_MABX_M->NonInlinedSFcns.blkInfo2[2]);
28033 }
28034
28035 _ssSetBlkInfo2PortInfo2Ptr(rts,
28036 &L4_MABX_M->NonInlinedSFcns.inputOutputPortInfo2[2]);
28037
28038 /* Set up the mdlInfo pointer */
28039 ssSetRTWSfcnInfo(rts, L4_MABX_M->sfcnInfo);
28040
28041 /* Allocate memory of model methods 2 */
28042 {
28043 ssSetModelMethods2(rts, &L4_MABX_M->NonInlinedSFcns.methods2[2]);
28044 }
28045
28046 /* Allocate memory of model methods 3 */
28047 {
28048 ssSetModelMethods3(rts, &L4_MABX_M->NonInlinedSFcns.methods3[2]);
28049 }
28050
28051 /* Allocate memory of model methods 4 */
28052 {
28053 ssSetModelMethods4(rts, &L4_MABX_M->NonInlinedSFcns.methods4[2]);
28054 }
28055
28056 /* Allocate memory for states auxilliary information */
28057 {
28058 ssSetStatesInfo2(rts, &L4_MABX_M->NonInlinedSFcns.statesInfo2[2]);
28059 ssSetPeriodicStatesInfo(rts,
28060 &L4_MABX_M->NonInlinedSFcns.periodicStatesInfo[2]);
28061 }
28062
28063 /* outputs */
28064 {
28065 ssSetPortInfoForOutputs(rts,
28066 &L4_MABX_M->NonInlinedSFcns.Sfcn2.outputPortInfo[0]);
28067 _ssSetNumOutputPorts(rts, 1);
28068 _ssSetPortInfo2ForOutputUnits(rts,
28069 &L4_MABX_M->NonInlinedSFcns.Sfcn2.outputPortUnits[0]);
28070 ssSetOutputPortUnit(rts, 0, 0);
28071 _ssSetPortInfo2ForOutputCoSimAttribute(rts,
28072 &L4_MABX_M->NonInlinedSFcns.Sfcn2.outputPortCoSimAttribute[0]);
28073 ssSetOutputPortIsContinuousQuantity(rts, 0, 0);
28074
28075 /* port 0 */
28076 {
28077 _ssSetOutputPortNumDimensions(rts, 0, 1);
28078 ssSetOutputPortWidth(rts, 0, 1);
28079 ssSetOutputPortSignal(rts, 0, (NULL));
28080 }
28081 }
28082
28083 /* path info */
28084 ssSetModelName(rts, "dsa_tcpip_irq_l1_sfcn");
28085 ssSetPath(rts,
28086 "L4_MABX/ETHERNET/TCPIP_Setup/Interrupt_Task/dsa_tcpip_irq_l1_sfcn");
28087 ssSetRTModel(rts,L4_MABX_M);
28088 ssSetParentSS(rts, (NULL));
28089 ssSetRootSS(rts, rts);
28090 ssSetVersion(rts, SIMSTRUCT_VERSION_LEVEL2);
28091
28092 /* register function-calls */
28093 {
28094 int_T *callSysOutputs = (int_T *)
28095 &L4_MABX_M->NonInlinedSFcns.Sfcn2.callSysOutputs;
28096 void **callSysArgs1 = (void **)
28097 &L4_MABX_M->NonInlinedSFcns.Sfcn2.callSysArgs1;
28098 int_T *callSysArgs2 = (int_T *)
28099 &L4_MABX_M->NonInlinedSFcns.Sfcn2.callSysArgs2;
28100 SysOutputFcn *callSysFcns = (SysOutputFcn *)
28101 &L4_MABX_M->NonInlinedSFcns.Sfcn2.callSysFcns;
28102
28103 {
28104 int32_T i;
28105 for (i = 0; i < 1; i++) {
28106 callSysOutputs[i] = 0;
28107 callSysFcns[i] = (SysOutputFcn) (NULL);
28108 callSysFcns[1+i] = (SysOutputFcn) (NULL);
28109 callSysFcns[2*1+i] = (SysOutputFcn) (NULL);
28110 callSysFcns[3*1+i] = (SysOutputFcn) (NULL);
28111 }
28112 }
28113
28114 ssSetCallSystemOutputPtr(rts, &callSysOutputs[0]);
28115 ssSetCallSystemOutputArg1List(rts, &callSysArgs1[0]);
28116 ssSetCallSystemOutputArg2List(rts, &callSysArgs2[0]);
28117 ssSetCallSystemOutputFcnList(rts, &callSysFcns[0]);
28118 callSysArgs1[0] = (void *)L4_MABX_M;
28119 callSysArgs2[0] = 0;
28120 callSysFcns[0] = (SysOutputFcn) L4_MABX_TcpInputProcessingFNI;
28121 callSysFcns[1+0] = (SysOutputFcn) L4_TcpInputProcessing_ResetFNI;
28122 callSysFcns[2+0] = (SysOutputFcn) (NULL);
28123 callSysFcns[3+0] = (SysOutputFcn) (NULL);
28124 callSysOutputs[0] = 1;
28125 }
28126
28127 /* registration */
28128 dsa_tcpip_irq_l1_sfcn(rts);
28129 sfcnInitializeSizes(rts);
28130 sfcnInitializeSampleTimes(rts);
28131
28132 /* adjust sample time */
28133 ssSetSampleTime(rts, 0, -1.0);
28134 ssSetOffsetTime(rts, 0, -4.0);
28135 sfcnTsMap[0] = 11;
28136
28137 /* set compiled values of dynamic vector attributes */
28138 ssSetOutputPortWidth(rts, 0, 1);
28139 ssSetNumNonsampledZCs(rts, 0);
28140
28141 /* Update connectivity flags for each port */
28142 _ssSetOutputPortConnected(rts, 0, 1);
28143 _ssSetOutputPortBeingMerged(rts, 0, 0);
28144
28145 /* Update the BufferDstPort flags for each input port */
28146 }
28147
28148 /* Level2 S-Function Block: L4_MABX/<S386>/dsa_tcpip_setup (dsa_tcpip_setup_sfcn) */
28149 {
28150 SimStruct *rts = L4_MABX_M->childSfunctions[3];
28151
28152 /* timing info */
28153 time_T *sfcnPeriod = L4_MABX_M->NonInlinedSFcns.Sfcn3.sfcnPeriod;
28154 time_T *sfcnOffset = L4_MABX_M->NonInlinedSFcns.Sfcn3.sfcnOffset;
28155 int_T *sfcnTsMap = L4_MABX_M->NonInlinedSFcns.Sfcn3.sfcnTsMap;
28156 (void) memset((void*)sfcnPeriod, 0,
28157 sizeof(time_T)*1);
28158 (void) memset((void*)sfcnOffset, 0,
28159 sizeof(time_T)*1);
28160 ssSetSampleTimePtr(rts, &sfcnPeriod[0]);
28161 ssSetOffsetTimePtr(rts, &sfcnOffset[0]);
28162 ssSetSampleTimeTaskIDPtr(rts, sfcnTsMap);
28163
28164 {
28165 ssSetBlkInfo2Ptr(rts, &L4_MABX_M->NonInlinedSFcns.blkInfo2[3]);
28166 }
28167
28168 _ssSetBlkInfo2PortInfo2Ptr(rts,
28169 &L4_MABX_M->NonInlinedSFcns.inputOutputPortInfo2[3]);
28170
28171 /* Set up the mdlInfo pointer */
28172 ssSetRTWSfcnInfo(rts, L4_MABX_M->sfcnInfo);
28173
28174 /* Allocate memory of model methods 2 */
28175 {
28176 ssSetModelMethods2(rts, &L4_MABX_M->NonInlinedSFcns.methods2[3]);
28177 }
28178
28179 /* Allocate memory of model methods 3 */
28180 {
28181 ssSetModelMethods3(rts, &L4_MABX_M->NonInlinedSFcns.methods3[3]);
28182 }
28183
28184 /* Allocate memory of model methods 4 */
28185 {
28186 ssSetModelMethods4(rts, &L4_MABX_M->NonInlinedSFcns.methods4[3]);
28187 }
28188
28189 /* Allocate memory for states auxilliary information */
28190 {
28191 ssSetStatesInfo2(rts, &L4_MABX_M->NonInlinedSFcns.statesInfo2[3]);
28192 ssSetPeriodicStatesInfo(rts,
28193 &L4_MABX_M->NonInlinedSFcns.periodicStatesInfo[3]);
28194 }
28195
28196 /* outputs */
28197 {
28198 ssSetPortInfoForOutputs(rts,
28199 &L4_MABX_M->NonInlinedSFcns.Sfcn3.outputPortInfo[0]);
28200 _ssSetNumOutputPorts(rts, 1);
28201 _ssSetPortInfo2ForOutputUnits(rts,
28202 &L4_MABX_M->NonInlinedSFcns.Sfcn3.outputPortUnits[0]);
28203 ssSetOutputPortUnit(rts, 0, 0);
28204 _ssSetPortInfo2ForOutputCoSimAttribute(rts,
28205 &L4_MABX_M->NonInlinedSFcns.Sfcn3.outputPortCoSimAttribute[0]);
28206 ssSetOutputPortIsContinuousQuantity(rts, 0, 0);
28207
28208 /* port 0 */
28209 {
28210 _ssSetOutputPortNumDimensions(rts, 0, 1);
28211 ssSetOutputPortWidth(rts, 0, 1);
28212 ssSetOutputPortSignal(rts, 0, ((real_T *) &EthernetLinkStatus));
28213 }
28214 }
28215
28216 /* path info */
28217 ssSetModelName(rts, "dsa_tcpip_setup");
28218 ssSetPath(rts, "L4_MABX/ETHERNET/TCPIP_Setup/dsa_tcpip_setup");
28219 ssSetRTModel(rts,L4_MABX_M);
28220 ssSetParentSS(rts, (NULL));
28221 ssSetRootSS(rts, rts);
28222 ssSetVersion(rts, SIMSTRUCT_VERSION_LEVEL2);
28223
28224 /* parameters */
28225 {
28226 mxArray **sfcnParams = (mxArray **)
28227 &L4_MABX_M->NonInlinedSFcns.Sfcn3.params;
28228 ssSetSFcnParamsCount(rts, 6);
28229 ssSetSFcnParamsPtr(rts, &sfcnParams[0]);
28230 ssSetSFcnParam(rts, 0, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P1_Size);
28231 ssSetSFcnParam(rts, 1, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P2_Size);
28232 ssSetSFcnParam(rts, 2, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P3_Size);
28233 ssSetSFcnParam(rts, 3, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P4_Size);
28234 ssSetSFcnParam(rts, 4, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P5_Size);
28235 ssSetSFcnParam(rts, 5, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P6_Size);
28236 }
28237
28238 /* work vectors */
28239 ssSetIWork(rts, (int_T *) &L4_MABX_DW.dsa_tcpip_setup_IWORK);
28240 ssSetPWork(rts, (void **) &L4_MABX_DW.dsa_tcpip_setup_PWORK);
28241
28242 {
28243 struct _ssDWorkRecord *dWorkRecord = (struct _ssDWorkRecord *)
28244 &L4_MABX_M->NonInlinedSFcns.Sfcn3.dWork;
28245 struct _ssDWorkAuxRecord *dWorkAuxRecord = (struct _ssDWorkAuxRecord *)
28246 &L4_MABX_M->NonInlinedSFcns.Sfcn3.dWorkAux;
28247 ssSetSFcnDWork(rts, dWorkRecord);
28248 ssSetSFcnDWorkAux(rts, dWorkAuxRecord);
28249 _ssSetNumDWork(rts, 2);
28250
28251 /* IWORK */
28252 ssSetDWorkWidth(rts, 0, 1);
28253 ssSetDWorkDataType(rts, 0,SS_INTEGER);
28254 ssSetDWorkComplexSignal(rts, 0, 0);
28255 ssSetDWork(rts, 0, &L4_MABX_DW.dsa_tcpip_setup_IWORK);
28256
28257 /* PWORK */
28258 ssSetDWorkWidth(rts, 1, 1);
28259 ssSetDWorkDataType(rts, 1,SS_POINTER);
28260 ssSetDWorkComplexSignal(rts, 1, 0);
28261 ssSetDWork(rts, 1, &L4_MABX_DW.dsa_tcpip_setup_PWORK);
28262 }
28263
28264 /* registration */
28265 dsa_tcpip_setup_sfcn(rts);
28266 sfcnInitializeSizes(rts);
28267 sfcnInitializeSampleTimes(rts);
28268
28269 /* adjust sample time */
28270 ssSetSampleTime(rts, 0, 0.01);
28271 ssSetOffsetTime(rts, 0, 0.0);
28272 sfcnTsMap[0] = 0;
28273
28274 /* set compiled values of dynamic vector attributes */
28275 ssSetNumNonsampledZCs(rts, 0);
28276
28277 /* Update connectivity flags for each port */
28278 _ssSetOutputPortConnected(rts, 0, 1);
28279 _ssSetOutputPortBeingMerged(rts, 0, 0);
28280
28281 /* Update the BufferDstPort flags for each input port */
28282 }
28283
28284 /* Level2 S-Function Block: L4_MABX/<S387>/TCPIP_Com (dsa_tcpip_udp_sfcn) */
28285 {
28286 SimStruct *rts = L4_MABX_M->childSfunctions[4];
28287
28288 /* timing info */
28289 time_T *sfcnPeriod = L4_MABX_M->NonInlinedSFcns.Sfcn4.sfcnPeriod;
28290 time_T *sfcnOffset = L4_MABX_M->NonInlinedSFcns.Sfcn4.sfcnOffset;
28291 int_T *sfcnTsMap = L4_MABX_M->NonInlinedSFcns.Sfcn4.sfcnTsMap;
28292 (void) memset((void*)sfcnPeriod, 0,
28293 sizeof(time_T)*1);
28294 (void) memset((void*)sfcnOffset, 0,
28295 sizeof(time_T)*1);
28296 ssSetSampleTimePtr(rts, &sfcnPeriod[0]);
28297 ssSetOffsetTimePtr(rts, &sfcnOffset[0]);
28298 ssSetSampleTimeTaskIDPtr(rts, sfcnTsMap);
28299
28300 {
28301 ssSetBlkInfo2Ptr(rts, &L4_MABX_M->NonInlinedSFcns.blkInfo2[4]);
28302 }
28303
28304 _ssSetBlkInfo2PortInfo2Ptr(rts,
28305 &L4_MABX_M->NonInlinedSFcns.inputOutputPortInfo2[4]);
28306
28307 /* Set up the mdlInfo pointer */
28308 ssSetRTWSfcnInfo(rts, L4_MABX_M->sfcnInfo);
28309
28310 /* Allocate memory of model methods 2 */
28311 {
28312 ssSetModelMethods2(rts, &L4_MABX_M->NonInlinedSFcns.methods2[4]);
28313 }
28314
28315 /* Allocate memory of model methods 3 */
28316 {
28317 ssSetModelMethods3(rts, &L4_MABX_M->NonInlinedSFcns.methods3[4]);
28318 }
28319
28320 /* Allocate memory of model methods 4 */
28321 {
28322 ssSetModelMethods4(rts, &L4_MABX_M->NonInlinedSFcns.methods4[4]);
28323 }
28324
28325 /* Allocate memory for states auxilliary information */
28326 {
28327 ssSetStatesInfo2(rts, &L4_MABX_M->NonInlinedSFcns.statesInfo2[4]);
28328 ssSetPeriodicStatesInfo(rts,
28329 &L4_MABX_M->NonInlinedSFcns.periodicStatesInfo[4]);
28330 }
28331
28332 /* inputs */
28333 {
28334 _ssSetNumInputPorts(rts, 3);
28335 ssSetPortInfoForInputs(rts,
28336 &L4_MABX_M->NonInlinedSFcns.Sfcn4.inputPortInfo[0]);
28337 _ssSetPortInfo2ForInputUnits(rts,
28338 &L4_MABX_M->NonInlinedSFcns.Sfcn4.inputPortUnits[0]);
28339 ssSetInputPortUnit(rts, 0, 0);
28340 ssSetInputPortUnit(rts, 1, 0);
28341 ssSetInputPortUnit(rts, 2, 0);
28342 _ssSetPortInfo2ForInputCoSimAttribute(rts,
28343 &L4_MABX_M->NonInlinedSFcns.Sfcn4.inputPortCoSimAttribute[0]);
28344 ssSetInputPortIsContinuousQuantity(rts, 0, 0);
28345 ssSetInputPortIsContinuousQuantity(rts, 1, 0);
28346 ssSetInputPortIsContinuousQuantity(rts, 2, 0);
28347
28348 /* port 0 */
28349 {
28350 boolean_T const **sfcnUPtrs = (boolean_T const **)
28351 &L4_MABX_M->NonInlinedSFcns.Sfcn4.UPtrs0;
28352 sfcnUPtrs[0] = &L4_MABX_B.Enable;
28353 ssSetInputPortSignalPtrs(rts, 0, (InputPtrsType)&sfcnUPtrs[0]);
28354 _ssSetInputPortNumDimensions(rts, 0, 1);
28355 ssSetInputPortWidth(rts, 0, 1);
28356 }
28357
28358 /* port 1 */
28359 {
28360 uint32_T const **sfcnUPtrs = (uint32_T const **)
28361 &L4_MABX_M->NonInlinedSFcns.Sfcn4.UPtrs1;
28362 sfcnUPtrs[0] = &L4_MABX_B.Encoder_o2;
28363 ssSetInputPortSignalPtrs(rts, 1, (InputPtrsType)&sfcnUPtrs[0]);
28364 _ssSetInputPortNumDimensions(rts, 1, 1);
28365 ssSetInputPortWidth(rts, 1, 1);
28366 }
28367
28368 /* port 2 */
28369 {
28370 uint8_T const **sfcnUPtrs = (uint8_T const **)
28371 &L4_MABX_M->NonInlinedSFcns.Sfcn4.UPtrs2;
28372
28373 {
28374 int_T i1;
28375 const uint8_T *u2 = L4_MABX_B.Encoder_o1;
28376 for (i1=0; i1 < 22; i1++) {
28377 sfcnUPtrs[i1] = &u2[i1];
28378 }
28379 }
28380
28381 ssSetInputPortSignalPtrs(rts, 2, (InputPtrsType)&sfcnUPtrs[0]);
28382 _ssSetInputPortNumDimensions(rts, 2, 1);
28383 ssSetInputPortWidth(rts, 2, 22);
28384 }
28385 }
28386
28387 /* outputs */
28388 {
28389 ssSetPortInfoForOutputs(rts,
28390 &L4_MABX_M->NonInlinedSFcns.Sfcn4.outputPortInfo[0]);
28391 _ssSetNumOutputPorts(rts, 3);
28392 _ssSetPortInfo2ForOutputUnits(rts,
28393 &L4_MABX_M->NonInlinedSFcns.Sfcn4.outputPortUnits[0]);
28394 ssSetOutputPortUnit(rts, 0, 0);
28395 ssSetOutputPortUnit(rts, 1, 0);
28396 ssSetOutputPortUnit(rts, 2, 0);
28397 _ssSetPortInfo2ForOutputCoSimAttribute(rts,
28398 &L4_MABX_M->NonInlinedSFcns.Sfcn4.outputPortCoSimAttribute[0]);
28399 ssSetOutputPortIsContinuousQuantity(rts, 0, 0);
28400 ssSetOutputPortIsContinuousQuantity(rts, 1, 0);
28401 ssSetOutputPortIsContinuousQuantity(rts, 2, 0);
28402
28403 /* port 0 */
28404 {
28405 _ssSetOutputPortNumDimensions(rts, 0, 1);
28406 ssSetOutputPortWidth(rts, 0, 3);
28407 ssSetOutputPortSignal(rts, 0, ((uint32_T *) L4_MABX_B.TCPIP_Com_o1));
28408 }
28409
28410 /* port 1 */
28411 {
28412 _ssSetOutputPortNumDimensions(rts, 1, 1);
28413 ssSetOutputPortWidth(rts, 1, 1);
28414 ssSetOutputPortSignal(rts, 1, ((uint32_T *) &L4_MABX_B.TCPIP_Com_o2));
28415 }
28416
28417 /* port 2 */
28418 {
28419 _ssSetOutputPortNumDimensions(rts, 2, 1);
28420 ssSetOutputPortWidth(rts, 2, 128);
28421 ssSetOutputPortSignal(rts, 2, ((uint8_T *) L4_MABX_B.TCPIP_Com_o3));
28422 }
28423 }
28424
28425 /* path info */
28426 ssSetModelName(rts, "TCPIP_Com");
28427 ssSetPath(rts, "L4_MABX/ETHERNET/UDPIP_Communication/TCPIP_Com");
28428 ssSetRTModel(rts,L4_MABX_M);
28429 ssSetParentSS(rts, (NULL));
28430 ssSetRootSS(rts, rts);
28431 ssSetVersion(rts, SIMSTRUCT_VERSION_LEVEL2);
28432
28433 /* parameters */
28434 {
28435 mxArray **sfcnParams = (mxArray **)
28436 &L4_MABX_M->NonInlinedSFcns.Sfcn4.params;
28437 ssSetSFcnParamsCount(rts, 6);
28438 ssSetSFcnParamsPtr(rts, &sfcnParams[0]);
28439 ssSetSFcnParam(rts, 0, (mxArray*)L4_MABX_P.TCPIP_Com_P1_Size);
28440 ssSetSFcnParam(rts, 1, (mxArray*)L4_MABX_P.TCPIP_Com_P2_Size);
28441 ssSetSFcnParam(rts, 2, (mxArray*)L4_MABX_P.TCPIP_Com_P3_Size);
28442 ssSetSFcnParam(rts, 3, (mxArray*)L4_MABX_P.TCPIP_Com_P4_Size);
28443 ssSetSFcnParam(rts, 4, (mxArray*)L4_MABX_P.TCPIP_Com_P5_Size);
28444 ssSetSFcnParam(rts, 5, (mxArray*)L4_MABX_P.TCPIP_Com_P6_Size);
28445 }
28446
28447 /* work vectors */
28448 ssSetPWork(rts, (void **) &L4_MABX_DW.TCPIP_Com_PWORK);
28449
28450 {
28451 struct _ssDWorkRecord *dWorkRecord = (struct _ssDWorkRecord *)
28452 &L4_MABX_M->NonInlinedSFcns.Sfcn4.dWork;
28453 struct _ssDWorkAuxRecord *dWorkAuxRecord = (struct _ssDWorkAuxRecord *)
28454 &L4_MABX_M->NonInlinedSFcns.Sfcn4.dWorkAux;
28455 ssSetSFcnDWork(rts, dWorkRecord);
28456 ssSetSFcnDWorkAux(rts, dWorkAuxRecord);
28457 _ssSetNumDWork(rts, 1);
28458
28459 /* PWORK */
28460 ssSetDWorkWidth(rts, 0, 1);
28461 ssSetDWorkDataType(rts, 0,SS_POINTER);
28462 ssSetDWorkComplexSignal(rts, 0, 0);
28463 ssSetDWork(rts, 0, &L4_MABX_DW.TCPIP_Com_PWORK);
28464 }
28465
28466 /* registration */
28467 dsa_tcpip_udp_sfcn(rts);
28468 sfcnInitializeSizes(rts);
28469 sfcnInitializeSampleTimes(rts);
28470
28471 /* adjust sample time */
28472 ssSetSampleTime(rts, 0, 0.01);
28473 ssSetOffsetTime(rts, 0, 0.0);
28474 sfcnTsMap[0] = 0;
28475
28476 /* set compiled values of dynamic vector attributes */
28477 ssSetNumNonsampledZCs(rts, 0);
28478
28479 /* Update connectivity flags for each port */
28480 _ssSetInputPortConnected(rts, 0, 1);
28481 _ssSetInputPortConnected(rts, 1, 1);
28482 _ssSetInputPortConnected(rts, 2, 1);
28483 _ssSetOutputPortConnected(rts, 0, 1);
28484 _ssSetOutputPortConnected(rts, 1, 1);
28485 _ssSetOutputPortConnected(rts, 2, 1);
28486 _ssSetOutputPortBeingMerged(rts, 0, 0);
28487 _ssSetOutputPortBeingMerged(rts, 1, 0);
28488 _ssSetOutputPortBeingMerged(rts, 2, 0);
28489
28490 /* Update the BufferDstPort flags for each input port */
28491 ssSetInputPortBufferDstPort(rts, 0, -1);
28492 ssSetInputPortBufferDstPort(rts, 1, -1);
28493 ssSetInputPortBufferDstPort(rts, 2, -1);
28494 }
28495 }
28496
28497 {
28498 /* user code (registration function declaration) */
28499 /*Initialize global TRC pointers. */
28500 L4_MABX_rti_init_trc_pointers();
28501 }
28502
28503 /* Start for Enabled SubSystem: '<S715>/Slew_at_event' */
28504 L4_MABX_DW.Slew_at_event_MODE = false;
28505
28506 /* End of Start for SubSystem: '<S715>/Slew_at_event' */
28507
28508 /* Start for S-Function (dsa_tcpip_setup_sfcn): '<S386>/dsa_tcpip_setup' */
28509 /* Level2 S-Function Block: '<S386>/dsa_tcpip_setup' (dsa_tcpip_setup_sfcn) */
28510 {
28511 SimStruct *rts = L4_MABX_M->childSfunctions[3];
28512 sfcnStart(rts);
28513 if (ssGetErrorStatus(rts) != (NULL))
28514 return;
28515 }
28516
28517 /* Start for Constant: '<S3>/Enable' */
28518 L4_MABX_B.Enable = L4_MABX_P.Enable_Value;
28519
28520 /* Start for S-Function (dsa_gen_tx_RTMapsEncode_sfun): '<S393>/Encoder' */
28521 Init_Tx_RTMapsEncode();
28522
28523 /* Start for S-Function (dsa_tcpip_udp_sfcn): '<S387>/TCPIP_Com' */
28524 /* Level2 S-Function Block: '<S387>/TCPIP_Com' (dsa_tcpip_udp_sfcn) */
28525 {
28526 SimStruct *rts = L4_MABX_M->childSfunctions[4];
28527 sfcnStart(rts);
28528 if (ssGetErrorStatus(rts) != (NULL))
28529 return;
28530 }
28531
28532 /* Start for S-Function (dsa_gen_rx_RTMapsDecode_sfun): '<S390>/Decoder' */
28533 Init_Rx_RTMapsDecode();
28534
28535 /* Start for Atomic SubSystem: '<S65>/Task_10ms' */
28536 /* Start for RateTransition: '<S81>/TmpRTBAtSignal Conversion1Inport1' */
28537 L4_MABX_B.distanceSpdTarget_e = L4_MABX_P.TmpRTBAtSignalConversion1Inport;
28538
28539 /* Start for Enabled SubSystem: '<S79>/Throttle_controller_gov' */
28540 L4_MABX_DW.Throttle_controller_gov_MODE = false;
28541
28542 /* Start for Enabled SubSystem: '<S238>/Calculate_D_term' */
28543 L4_M_Calculate_D_term_Start(&L4_MABX_DW.Calculate_D_term_h);
28544
28545 /* End of Start for SubSystem: '<S238>/Calculate_D_term' */
28546
28547 /* Start for Enabled SubSystem: '<S238>/Calculate_I_term' */
28548 L4_M_Calculate_I_term_Start(&L4_MABX_DW.Calculate_I_term_n);
28549
28550 /* End of Start for SubSystem: '<S238>/Calculate_I_term' */
28551
28552 /* End of Start for SubSystem: '<S79>/Throttle_controller_gov' */
28553
28554 /* Start for Enabled SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' */
28555 L4_MABX_DW.Determine_shift_interlock_brake = false;
28556
28557 /* End of Start for SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' */
28558
28559 /* Start for Enabled SubSystem: '<S99>/Determine_brake_hold_pressure_target' */
28560 L4_MABX_DW.Determine_brake_hold_pressure_t = false;
28561
28562 /* End of Start for SubSystem: '<S99>/Determine_brake_hold_pressure_target' */
28563
28564 /* Start for Enabled SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
28565 L4_MABX_DW.Bendix_2C2_brake_application_pr = false;
28566
28567 /* Start for Enabled SubSystem: '<S106>/Calculate_D_term' */
28568 L4_M_Calculate_D_term_Start(&L4_MABX_DW.Calculate_D_term);
28569
28570 /* End of Start for SubSystem: '<S106>/Calculate_D_term' */
28571
28572 /* Start for Enabled SubSystem: '<S106>/Calculate_I_term' */
28573 L4_M_Calculate_I_term_Start(&L4_MABX_DW.Calculate_I_term);
28574
28575 /* End of Start for SubSystem: '<S106>/Calculate_I_term' */
28576
28577 /* End of Start for SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
28578
28579 /* Start for RateTransition: '<S81>/TmpRTBAtSignal Conversion3Inport1' */
28580 L4_MABX_B.pathSpdLimit_a = L4_MABX_P.TmpRTBAtSignalConversion3Inport;
28581
28582 /* Start for RateTransition: '<S81>/TmpRTBAtSignal Conversion2Inport1' */
28583 L4_MABX_B.distance_o = L4_MABX_P.TmpRTBAtSignalConversion2Inport;
28584
28585 /* Start for Enabled SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
28586 L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba = false;
28587
28588 /* Start for Enabled SubSystem: '<S144>/Calculate_D_term' */
28589 L4_M_Calculate_D_term_Start(&L4_MABX_DW.Calculate_D_term_p);
28590
28591 /* End of Start for SubSystem: '<S144>/Calculate_D_term' */
28592
28593 /* Start for Enabled SubSystem: '<S144>/Calculate_I_term' */
28594 L4_M_Calculate_I_term_Start(&L4_MABX_DW.Calculate_I_term_e);
28595
28596 /* End of Start for SubSystem: '<S144>/Calculate_I_term' */
28597
28598 /* End of Start for SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
28599
28600 /* Start for Enabled SubSystem: '<S79>/Engine_speed_target' */
28601 L4_MABX_DW.Engine_speed_target_MODE = false;
28602
28603 /* End of Start for SubSystem: '<S79>/Engine_speed_target' */
28604
28605 /* Start for Enabled SubSystem: '<S276>/Slew_at_event' */
28606 L4_MABX_DW.Slew_at_event_MODE_d = false;
28607
28608 /* End of Start for SubSystem: '<S276>/Slew_at_event' */
28609
28610 /* Start for RateTransition: '<S80>/TmpRTBAtrad2deg1Inport1' */
28611 L4_MABX_B.previewSteeringAngle_b = L4_MABX_P.TmpRTBAtrad2deg1Inport1_Initial;
28612
28613 /* Start for RateTransition: '<S80>/TmpRTBAtsignCurveOffsetInport1' */
28614 L4_MABX_B.TmpRTBAtsignCurveOffsetInport1 =
28615 L4_MABX_P.TmpRTBAtsignCurveOffsetInport1_;
28616
28617 /* Start for RateTransition: '<S277>/TmpRTBAtAdd2Inport2' */
28618 L4_MABX_B.TmpRTBAtAdd2Inport2 = L4_MABX_P.TmpRTBAtAdd2Inport2_InitialCond;
28619
28620 /* End of Start for SubSystem: '<S65>/Task_10ms' */
28621
28622 /* Start for Atomic SubSystem: '<S804>/CAN_TX_10ms' */
28623
28624 /* Start for Width: '<S961>/Width' */
28625 L4_MABX_B.Width_o = 16U;
28626
28627 /* End of Start for SubSystem: '<S804>/CAN_TX_10ms' */
28628
28629 /* Start for Atomic SubSystem: '<S804>/CAN_TX_20ms' */
28630
28631 /* Start for Width: '<S989>/Width' */
28632 L4_MABX_B.Width_a = 16U;
28633
28634 /* End of Start for SubSystem: '<S804>/CAN_TX_20ms' */
28635
28636 /* Start for Atomic SubSystem: '<S804>/CAN_TX_5000ms' */
28637
28638 /* Start for Width: '<S1004>/Width' */
28639 L4_MABX_B.Width = 8U;
28640
28641 /* End of Start for SubSystem: '<S804>/CAN_TX_5000ms' */
28642
28643 /* Start for RateTransition: '<S1033>/TmpRTBAtANDInport1' */
28644 L4_MABX_B.TmpRTBAtANDInport1 = L4_MABX_P.TmpRTBAtANDInport1_InitialCondi;
28645
28646 /* Start for Atomic SubSystem: '<S65>/Task_20ms' */
28647 /* Start for Constant: '<S383>/InitialHeading' */
28648 L4_MABX_B.InitialHeading = L4_MABX_P.InitialHeading_Value;
28649
28650 /* Start for Constant: '<S383>/InitialPosition' */
28651 L4_MABX_B.InitialPosition = L4_MABX_P.InitialPosition_Value;
28652
28653 /* Start for Constant: '<S383>/InitialXPosition' */
28654 L4_MABX_B.InitialXPosition = L4_MABX_P.InitialXPosition_Value;
28655
28656 /* Start for Constant: '<S383>/InitialYPosition' */
28657 L4_MABX_B.InitialYPosition = L4_MABX_P.InitialYPosition_Value;
28658
28659 /* End of Start for SubSystem: '<S65>/Task_20ms' */
28660
28661 /* Start for S-Function (rti_commonblock): '<S394>/S-Function1' incorporates:
28662 * SubSystem: '<S386>/Background_Task'
28663 */
28664 L4_MA_Background_Task_Start();
28665
28666 /* End of Start for S-Function (rti_commonblock): '<S394>/S-Function1' */
28667
28668 /* Start for S-Function (rti_commonblock): '<S400>/S-Function1' incorporates:
28669 * SubSystem: '<S386>/Interrupt_Task'
28670 */
28671 L4_MAB_Interrupt_Task_Start();
28672
28673 /* End of Start for S-Function (rti_commonblock): '<S400>/S-Function1' */
28674 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C1_Trig_ZCE = UNINITIALIZED_ZCSIG;
28675 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C2_Trig_ZCE = UNINITIALIZED_ZCSIG;
28676 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C1_Trig_ZCE = UNINITIALIZED_ZCSIG;
28677 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C2_Trig_ZCE = UNINITIALIZED_ZCSIG;
28678 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C1_Trig_ZCE = UNINITIALIZED_ZCSIG;
28679 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C2_Trig_ZCE = UNINITIALIZED_ZCSIG;
28680 L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE_g = POS_ZCSIG;
28681 L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE = POS_ZCSIG;
28682
28683 {
28684 int32_T i;
28685
28686 /* InitializeConditions for UnitDelay: '<S751>/FixPt Unit Delay2' */
28687 L4_MABX_DW.FixPtUnitDelay2_DSTATE =
28688 L4_MABX_P.FixPtUnitDelay2_InitialCondi_ik;
28689
28690 /* InitializeConditions for UnitDelay: '<S751>/FixPt Unit Delay1' */
28691 L4_MABX_DW.FixPtUnitDelay1_DSTATE =
28692 L4_MABX_P.FixPtUnitDelay1_InitialCondi_f2;
28693
28694 /* InitializeConditions for UnitDelay: '<S743>/FixPt Unit Delay2' */
28695 L4_MABX_DW.FixPtUnitDelay2_DSTATE_h =
28696 L4_MABX_P.FixPtUnitDelay2_InitialCondi_aj;
28697
28698 /* InitializeConditions for UnitDelay: '<S743>/FixPt Unit Delay1' */
28699 L4_MABX_DW.FixPtUnitDelay1_DSTATE_p =
28700 L4_MABX_P.FixPtUnitDelay1_InitialCondi_dx;
28701
28702 /* InitializeConditions for UnitDelay: '<S767>/FixPt Unit Delay2' */
28703 L4_MABX_DW.FixPtUnitDelay2_DSTATE_g =
28704 L4_MABX_P.FixPtUnitDelay2_InitialCondit_d;
28705
28706 /* InitializeConditions for UnitDelay: '<S767>/FixPt Unit Delay1' */
28707 L4_MABX_DW.FixPtUnitDelay1_DSTATE_n =
28708 L4_MABX_P.FixPtUnitDelay1_InitialCondi_lj;
28709
28710 /* InitializeConditions for UnitDelay: '<S759>/FixPt Unit Delay2' */
28711 L4_MABX_DW.FixPtUnitDelay2_DSTATE_i =
28712 L4_MABX_P.FixPtUnitDelay2_InitialCondit_m;
28713
28714 /* InitializeConditions for UnitDelay: '<S759>/FixPt Unit Delay1' */
28715 L4_MABX_DW.FixPtUnitDelay1_DSTATE_f =
28716 L4_MABX_P.FixPtUnitDelay1_InitialCondi_dh;
28717
28718 /* InitializeConditions for UnitDelay: '<S721>/Unit_Delay' */
28719 L4_MABX_DW.Unit_Delay_DSTATE_d5 = L4_MABX_P.Unit_Delay_InitialCondition_bw;
28720
28721 /* InitializeConditions for UnitDelay: '<S788>/Unit_Delay1' */
28722 L4_MABX_DW.Unit_Delay1_DSTATE = L4_MABX_P.Unit_Delay1_InitialCondition_jh;
28723
28724 /* InitializeConditions for UnitDelay: '<S788>/Unit_Delay2' */
28725 L4_MABX_DW.Unit_Delay2_DSTATE = L4_MABX_P.Unit_Delay2_InitialCondition_i;
28726
28727 /* InitializeConditions for UnitDelay: '<S721>/Unit_Delay1' */
28728 L4_MABX_DW.Unit_Delay1_DSTATE_c = L4_MABX_P.Unit_Delay1_InitialCondition_a1;
28729
28730 /* InitializeConditions for UnitDelay: '<S789>/Unit_Delay1' */
28731 L4_MABX_DW.Unit_Delay1_DSTATE_i = L4_MABX_P.Unit_Delay1_InitialCondition_g;
28732
28733 /* InitializeConditions for UnitDelay: '<S789>/Unit_Delay2' */
28734 L4_MABX_DW.Unit_Delay2_DSTATE_j = L4_MABX_P.Unit_Delay2_InitialCondition_p;
28735
28736 /* InitializeConditions for UnitDelay: '<S787>/FixPt Unit Delay2' */
28737 L4_MABX_DW.FixPtUnitDelay2_DSTATE_c =
28738 L4_MABX_P.FixPtUnitDelay2_InitialCondit_b;
28739
28740 /* InitializeConditions for UnitDelay: '<S787>/FixPt Unit Delay1' */
28741 L4_MABX_DW.FixPtUnitDelay1_DSTATE_b =
28742 L4_MABX_P.FixPtUnitDelay1_InitialCondit_k;
28743
28744 /* InitializeConditions for UnitDelay: '<S786>/FixPt Unit Delay2' */
28745 L4_MABX_DW.FixPtUnitDelay2_DSTATE_e =
28746 L4_MABX_P.FixPtUnitDelay2_InitialCondi_fd;
28747
28748 /* InitializeConditions for UnitDelay: '<S786>/FixPt Unit Delay1' */
28749 L4_MABX_DW.FixPtUnitDelay1_DSTATE_e =
28750 L4_MABX_P.FixPtUnitDelay1_InitialCondit_n;
28751
28752 /* InitializeConditions for UnitDelay: '<S775>/FixPt Unit Delay2' */
28753 L4_MABX_DW.FixPtUnitDelay2_DSTATE_n =
28754 L4_MABX_P.FixPtUnitDelay2_InitialCondit_n;
28755
28756 /* InitializeConditions for UnitDelay: '<S775>/FixPt Unit Delay1' */
28757 L4_MABX_DW.FixPtUnitDelay1_DSTATE_k =
28758 L4_MABX_P.FixPtUnitDelay1_InitialCondit_e;
28759
28760 /* InitializeConditions for RateTransition: '<S403>/Rate Transition' */
28761 L4_MABX_DW.RateTransition_Buffer0 =
28762 L4_MABX_P.RateTransition_InitialCondition;
28763 L4_MABX_DW.RateTransition_write_buf = -1;
28764 L4_MABX_DW.RateTransition_read_buf = -1;
28765
28766 /* InitializeConditions for UnitDelay: '<S631>/Unit_Delay3' */
28767 L4_MABX_DW.Unit_Delay3_DSTATE = L4_MABX_P.Unit_Delay3_InitialCondition;
28768
28769 /* InitializeConditions for UnitDelay: '<S631>/Unit_Delay' */
28770 L4_MABX_DW.Unit_Delay_DSTATE_c0 = L4_MABX_P.Unit_Delay_InitialCondition_au;
28771
28772 /* InitializeConditions for UnitDelay: '<S637>/Unit_Delay' */
28773 L4_MABX_DW.Unit_Delay_DSTATE_p4 = L4_MABX_P.Unit_Delay_InitialCondition_a4;
28774
28775 /* InitializeConditions for S-Function (dsa_tcpip_setup_sfcn): '<S386>/dsa_tcpip_setup' */
28776 /* Level2 S-Function Block: '<S386>/dsa_tcpip_setup' (dsa_tcpip_setup_sfcn) */
28777 {
28778 SimStruct *rts = L4_MABX_M->childSfunctions[3];
28779 sfcnInitializeConditions(rts);
28780 if (ssGetErrorStatus(rts) != (NULL))
28781 return;
28782 }
28783
28784 /* InitializeConditions for DiscretePulseGenerator: '<S385>/Heartbeat' */
28785 L4_MABX_DW.clockTickCounter = 0;
28786
28787 /* InitializeConditions for UnitDelay: '<S3>/Unit_Delay' */
28788 L4_MABX_DW.Unit_Delay_79_DSTATE = L4_MABX_P.Unit_Delay_79_InitialCondition;
28789 L4_MABX_DW.Unit_Delay_80_DSTATE = L4_MABX_P.Unit_Delay_80_InitialCondition;
28790 L4_MABX_DW.Unit_Delay_81_DSTATE = L4_MABX_P.Unit_Delay_81_InitialCondition;
28791 L4_MABX_DW.Unit_Delay_45_DSTATE = L4_MABX_P.Unit_Delay_45_InitialCondition;
28792 L4_MABX_DW.Unit_Delay_47_DSTATE = L4_MABX_P.Unit_Delay_47_InitialCondition;
28793
28794 /* InitializeConditions for S-Function (dsa_tcpip_udp_sfcn): '<S387>/TCPIP_Com' */
28795 /* Level2 S-Function Block: '<S387>/TCPIP_Com' (dsa_tcpip_udp_sfcn) */
28796 {
28797 SimStruct *rts = L4_MABX_M->childSfunctions[4];
28798 sfcnInitializeConditions(rts);
28799 if (ssGetErrorStatus(rts) != (NULL))
28800 return;
28801 }
28802
28803 /* InitializeConditions for UnitDelay: '<S391>/Delay Input1' */
28804 L4_MABX_DW.DelayInput1_DSTATE_p = L4_MABX_P.DetectRisePositive1_vinit;
28805
28806 /* InitializeConditions for UnitDelay: '<S389>/Unit Delay' */
28807 L4_MABX_DW.UnitDelay_DSTATE = L4_MABX_P.UnitDelay_InitialCondition_h;
28808
28809 /* InitializeConditions for UnitDelay: '<S814>/Unit Delay2' */
28810 L4_MABX_DW.UnitDelay2_DSTATE = L4_MABX_P.UnitDelay2_InitialCondition;
28811
28812 /* InitializeConditions for UnitDelay: '<S814>/Unit Delay1' */
28813 L4_MABX_DW.UnitDelay1_DSTATE_a = L4_MABX_P.UnitDelay1_InitialCondition_h;
28814
28815 /* InitializeConditions for UnitDelay: '<S814>/Unit Delay3' */
28816 L4_MABX_DW.UnitDelay3_DSTATE = L4_MABX_P.UnitDelay3_InitialCondition;
28817
28818 /* InitializeConditions for RateTransition: '<S1033>/TmpRTBAtANDInport1' */
28819 L4_MABX_DW.TmpRTBAtANDInport1_Buffer0 =
28820 L4_MABX_P.TmpRTBAtANDInport1_InitialCondi;
28821
28822 /* InitializeConditions for DiscretePulseGenerator: '<S1033>/Flash' */
28823 L4_MABX_DW.clockTickCounter_e = 0;
28824
28825 /* InitializeConditions for UnitDelay: '<S3>/Unit_Delay' */
28826 L4_MABX_DW.Unit_Delay_1_DSTATE = L4_MABX_P.Unit_Delay_1_InitialCondition_f;
28827 L4_MABX_DW.Unit_Delay_10_DSTATE = L4_MABX_P.Unit_Delay_10_InitialCondition;
28828 L4_MABX_DW.Unit_Delay_100_DSTATE = L4_MABX_P.Unit_Delay_100_InitialCondition;
28829 L4_MABX_DW.Unit_Delay_101_DSTATE = L4_MABX_P.Unit_Delay_101_InitialCondition;
28830 L4_MABX_DW.Unit_Delay_102_DSTATE = L4_MABX_P.Unit_Delay_102_InitialCondition;
28831 L4_MABX_DW.Unit_Delay_103_DSTATE = L4_MABX_P.Unit_Delay_103_InitialCondition;
28832 L4_MABX_DW.Unit_Delay_104_DSTATE = L4_MABX_P.Unit_Delay_104_InitialCondition;
28833 L4_MABX_DW.Unit_Delay_105_DSTATE = L4_MABX_P.Unit_Delay_105_InitialCondition;
28834 L4_MABX_DW.Unit_Delay_106_DSTATE = L4_MABX_P.Unit_Delay_106_InitialCondition;
28835 L4_MABX_DW.Unit_Delay_107_DSTATE = L4_MABX_P.Unit_Delay_107_InitialCondition;
28836 L4_MABX_DW.Unit_Delay_108_DSTATE = L4_MABX_P.Unit_Delay_108_InitialCondition;
28837 L4_MABX_DW.Unit_Delay_109_DSTATE = L4_MABX_P.Unit_Delay_109_InitialCondition;
28838 L4_MABX_DW.Unit_Delay_11_DSTATE = L4_MABX_P.Unit_Delay_11_InitialCondition;
28839 L4_MABX_DW.Unit_Delay_110_DSTATE = L4_MABX_P.Unit_Delay_110_InitialCondition;
28840 L4_MABX_DW.Unit_Delay_111_DSTATE = L4_MABX_P.Unit_Delay_111_InitialCondition;
28841 L4_MABX_DW.Unit_Delay_112_DSTATE = L4_MABX_P.Unit_Delay_112_InitialCondition;
28842 L4_MABX_DW.Unit_Delay_113_DSTATE = L4_MABX_P.Unit_Delay_113_InitialCondition;
28843 L4_MABX_DW.Unit_Delay_114_DSTATE = L4_MABX_P.Unit_Delay_114_InitialCondition;
28844 L4_MABX_DW.Unit_Delay_115_DSTATE = L4_MABX_P.Unit_Delay_115_InitialCondition;
28845 L4_MABX_DW.Unit_Delay_116_DSTATE = L4_MABX_P.Unit_Delay_116_InitialCondition;
28846 L4_MABX_DW.Unit_Delay_117_DSTATE = L4_MABX_P.Unit_Delay_117_InitialCondition;
28847 L4_MABX_DW.Unit_Delay_118_DSTATE = L4_MABX_P.Unit_Delay_118_InitialCondition;
28848 L4_MABX_DW.Unit_Delay_119_DSTATE = L4_MABX_P.Unit_Delay_119_InitialCondition;
28849 L4_MABX_DW.Unit_Delay_12_DSTATE = L4_MABX_P.Unit_Delay_12_InitialCondition;
28850 L4_MABX_DW.Unit_Delay_120_DSTATE = L4_MABX_P.Unit_Delay_120_InitialCondition;
28851 L4_MABX_DW.Unit_Delay_121_DSTATE = L4_MABX_P.Unit_Delay_121_InitialCondition;
28852 L4_MABX_DW.Unit_Delay_122_DSTATE = L4_MABX_P.Unit_Delay_122_InitialCondition;
28853 L4_MABX_DW.Unit_Delay_123_DSTATE = L4_MABX_P.Unit_Delay_123_InitialCondition;
28854 L4_MABX_DW.Unit_Delay_124_DSTATE = L4_MABX_P.Unit_Delay_124_InitialCondition;
28855 L4_MABX_DW.Unit_Delay_125_DSTATE = L4_MABX_P.Unit_Delay_125_InitialCondition;
28856 L4_MABX_DW.Unit_Delay_126_DSTATE = L4_MABX_P.Unit_Delay_126_InitialCondition;
28857 L4_MABX_DW.Unit_Delay_127_DSTATE = L4_MABX_P.Unit_Delay_127_InitialCondition;
28858 L4_MABX_DW.Unit_Delay_128_DSTATE = L4_MABX_P.Unit_Delay_128_InitialCondition;
28859 L4_MABX_DW.Unit_Delay_129_DSTATE = L4_MABX_P.Unit_Delay_129_InitialCondition;
28860 L4_MABX_DW.Unit_Delay_13_DSTATE = L4_MABX_P.Unit_Delay_13_InitialCondition;
28861 L4_MABX_DW.Unit_Delay_130_DSTATE = L4_MABX_P.Unit_Delay_130_InitialCondition;
28862 L4_MABX_DW.Unit_Delay_131_DSTATE = L4_MABX_P.Unit_Delay_131_InitialCondition;
28863 L4_MABX_DW.Unit_Delay_132_DSTATE = L4_MABX_P.Unit_Delay_132_InitialCondition;
28864 L4_MABX_DW.Unit_Delay_133_DSTATE = L4_MABX_P.Unit_Delay_133_InitialCondition;
28865 L4_MABX_DW.Unit_Delay_134_DSTATE = L4_MABX_P.Unit_Delay_134_InitialCondition;
28866 L4_MABX_DW.Unit_Delay_135_DSTATE = L4_MABX_P.Unit_Delay_135_InitialCondition;
28867 L4_MABX_DW.Unit_Delay_136_DSTATE = L4_MABX_P.Unit_Delay_136_InitialCondition;
28868 L4_MABX_DW.Unit_Delay_137_DSTATE = L4_MABX_P.Unit_Delay_137_InitialCondition;
28869 L4_MABX_DW.Unit_Delay_138_DSTATE = L4_MABX_P.Unit_Delay_138_InitialCondition;
28870 L4_MABX_DW.Unit_Delay_139_DSTATE = L4_MABX_P.Unit_Delay_139_InitialCondition;
28871 L4_MABX_DW.Unit_Delay_14_DSTATE = L4_MABX_P.Unit_Delay_14_InitialCondition;
28872 L4_MABX_DW.Unit_Delay_140_DSTATE = L4_MABX_P.Unit_Delay_140_InitialCondition;
28873 L4_MABX_DW.Unit_Delay_141_DSTATE = L4_MABX_P.Unit_Delay_141_InitialCondition;
28874 L4_MABX_DW.Unit_Delay_15_DSTATE = L4_MABX_P.Unit_Delay_15_InitialCondition;
28875 L4_MABX_DW.Unit_Delay_16_DSTATE = L4_MABX_P.Unit_Delay_16_InitialCondition;
28876 L4_MABX_DW.Unit_Delay_17_DSTATE = L4_MABX_P.Unit_Delay_17_InitialCondition;
28877 L4_MABX_DW.Unit_Delay_18_DSTATE = L4_MABX_P.Unit_Delay_18_InitialCondition;
28878 L4_MABX_DW.Unit_Delay_19_DSTATE = L4_MABX_P.Unit_Delay_19_InitialCondition;
28879 L4_MABX_DW.Unit_Delay_2_DSTATE = L4_MABX_P.Unit_Delay_2_InitialCondition_f;
28880 L4_MABX_DW.Unit_Delay_20_DSTATE = L4_MABX_P.Unit_Delay_20_InitialCondition;
28881 L4_MABX_DW.Unit_Delay_21_DSTATE = L4_MABX_P.Unit_Delay_21_InitialCondition;
28882 L4_MABX_DW.Unit_Delay_22_DSTATE = L4_MABX_P.Unit_Delay_22_InitialCondition;
28883 L4_MABX_DW.Unit_Delay_23_DSTATE = L4_MABX_P.Unit_Delay_23_InitialCondition;
28884 L4_MABX_DW.Unit_Delay_24_DSTATE = L4_MABX_P.Unit_Delay_24_InitialCondition;
28885 L4_MABX_DW.Unit_Delay_25_DSTATE = L4_MABX_P.Unit_Delay_25_InitialCondition;
28886 L4_MABX_DW.Unit_Delay_26_DSTATE = L4_MABX_P.Unit_Delay_26_InitialCondition;
28887 L4_MABX_DW.Unit_Delay_27_DSTATE = L4_MABX_P.Unit_Delay_27_InitialCondition;
28888 L4_MABX_DW.Unit_Delay_28_DSTATE = L4_MABX_P.Unit_Delay_28_InitialCondition;
28889 L4_MABX_DW.Unit_Delay_29_DSTATE = L4_MABX_P.Unit_Delay_29_InitialCondition;
28890 L4_MABX_DW.Unit_Delay_3_DSTATE = L4_MABX_P.Unit_Delay_3_InitialCondition_f;
28891 L4_MABX_DW.Unit_Delay_30_DSTATE = L4_MABX_P.Unit_Delay_30_InitialCondition;
28892 L4_MABX_DW.Unit_Delay_31_DSTATE = L4_MABX_P.Unit_Delay_31_InitialCondition;
28893 L4_MABX_DW.Unit_Delay_32_DSTATE = L4_MABX_P.Unit_Delay_32_InitialCondition;
28894 L4_MABX_DW.Unit_Delay_33_DSTATE = L4_MABX_P.Unit_Delay_33_InitialCondition;
28895 L4_MABX_DW.Unit_Delay_34_DSTATE = L4_MABX_P.Unit_Delay_34_InitialCondition;
28896 L4_MABX_DW.Unit_Delay_35_DSTATE = L4_MABX_P.Unit_Delay_35_InitialCondition;
28897 L4_MABX_DW.Unit_Delay_36_DSTATE = L4_MABX_P.Unit_Delay_36_InitialCondition;
28898 L4_MABX_DW.Unit_Delay_37_DSTATE = L4_MABX_P.Unit_Delay_37_InitialCondition;
28899 L4_MABX_DW.Unit_Delay_38_DSTATE = L4_MABX_P.Unit_Delay_38_InitialCondition;
28900 L4_MABX_DW.Unit_Delay_39_DSTATE = L4_MABX_P.Unit_Delay_39_InitialCondition;
28901 L4_MABX_DW.Unit_Delay_4_DSTATE = L4_MABX_P.Unit_Delay_4_InitialCondition;
28902 L4_MABX_DW.Unit_Delay_40_DSTATE = L4_MABX_P.Unit_Delay_40_InitialCondition;
28903 L4_MABX_DW.Unit_Delay_41_DSTATE = L4_MABX_P.Unit_Delay_41_InitialCondition;
28904 L4_MABX_DW.Unit_Delay_42_DSTATE = L4_MABX_P.Unit_Delay_42_InitialCondition;
28905 L4_MABX_DW.Unit_Delay_43_DSTATE = L4_MABX_P.Unit_Delay_43_InitialCondition;
28906 L4_MABX_DW.Unit_Delay_44_DSTATE = L4_MABX_P.Unit_Delay_44_InitialCondition;
28907 L4_MABX_DW.Unit_Delay_46_DSTATE = L4_MABX_P.Unit_Delay_46_InitialCondition;
28908 L4_MABX_DW.Unit_Delay_48_DSTATE = L4_MABX_P.Unit_Delay_48_InitialCondition;
28909 L4_MABX_DW.Unit_Delay_49_DSTATE = L4_MABX_P.Unit_Delay_49_InitialCondition;
28910 L4_MABX_DW.Unit_Delay_5_DSTATE = L4_MABX_P.Unit_Delay_5_InitialCondition;
28911 L4_MABX_DW.Unit_Delay_50_DSTATE = L4_MABX_P.Unit_Delay_50_InitialCondition;
28912 L4_MABX_DW.Unit_Delay_51_DSTATE = L4_MABX_P.Unit_Delay_51_InitialCondition;
28913 L4_MABX_DW.Unit_Delay_52_DSTATE = L4_MABX_P.Unit_Delay_52_InitialCondition;
28914 L4_MABX_DW.Unit_Delay_53_DSTATE = L4_MABX_P.Unit_Delay_53_InitialCondition;
28915 L4_MABX_DW.Unit_Delay_54_DSTATE = L4_MABX_P.Unit_Delay_54_InitialCondition;
28916 L4_MABX_DW.Unit_Delay_55_DSTATE = L4_MABX_P.Unit_Delay_55_InitialCondition;
28917 L4_MABX_DW.Unit_Delay_56_DSTATE = L4_MABX_P.Unit_Delay_56_InitialCondition;
28918 L4_MABX_DW.Unit_Delay_57_DSTATE = L4_MABX_P.Unit_Delay_57_InitialCondition;
28919 L4_MABX_DW.Unit_Delay_58_DSTATE = L4_MABX_P.Unit_Delay_58_InitialCondition;
28920 L4_MABX_DW.Unit_Delay_59_DSTATE = L4_MABX_P.Unit_Delay_59_InitialCondition;
28921 L4_MABX_DW.Unit_Delay_6_DSTATE = L4_MABX_P.Unit_Delay_6_InitialCondition;
28922 L4_MABX_DW.Unit_Delay_60_DSTATE = L4_MABX_P.Unit_Delay_60_InitialCondition;
28923 L4_MABX_DW.Unit_Delay_61_DSTATE = L4_MABX_P.Unit_Delay_61_InitialCondition;
28924 L4_MABX_DW.Unit_Delay_62_DSTATE = L4_MABX_P.Unit_Delay_62_InitialCondition;
28925 L4_MABX_DW.Unit_Delay_63_DSTATE = L4_MABX_P.Unit_Delay_63_InitialCondition;
28926 L4_MABX_DW.Unit_Delay_64_DSTATE = L4_MABX_P.Unit_Delay_64_InitialCondition;
28927 L4_MABX_DW.Unit_Delay_65_DSTATE = L4_MABX_P.Unit_Delay_65_InitialCondition;
28928 L4_MABX_DW.Unit_Delay_66_DSTATE = L4_MABX_P.Unit_Delay_66_InitialCondition;
28929 L4_MABX_DW.Unit_Delay_67_DSTATE = L4_MABX_P.Unit_Delay_67_InitialCondition;
28930 L4_MABX_DW.Unit_Delay_68_DSTATE = L4_MABX_P.Unit_Delay_68_InitialCondition;
28931 L4_MABX_DW.Unit_Delay_69_DSTATE = L4_MABX_P.Unit_Delay_69_InitialCondition;
28932 L4_MABX_DW.Unit_Delay_7_DSTATE = L4_MABX_P.Unit_Delay_7_InitialCondition;
28933 L4_MABX_DW.Unit_Delay_70_DSTATE = L4_MABX_P.Unit_Delay_70_InitialCondition;
28934 L4_MABX_DW.Unit_Delay_71_DSTATE = L4_MABX_P.Unit_Delay_71_InitialCondition;
28935 L4_MABX_DW.Unit_Delay_72_DSTATE = L4_MABX_P.Unit_Delay_72_InitialCondition;
28936 L4_MABX_DW.Unit_Delay_73_DSTATE = L4_MABX_P.Unit_Delay_73_InitialCondition;
28937 L4_MABX_DW.Unit_Delay_74_DSTATE = L4_MABX_P.Unit_Delay_74_InitialCondition;
28938 L4_MABX_DW.Unit_Delay_75_DSTATE = L4_MABX_P.Unit_Delay_75_InitialCondition;
28939 L4_MABX_DW.Unit_Delay_76_DSTATE = L4_MABX_P.Unit_Delay_76_InitialCondition;
28940 L4_MABX_DW.Unit_Delay_77_DSTATE = L4_MABX_P.Unit_Delay_77_InitialCondition;
28941 L4_MABX_DW.Unit_Delay_78_DSTATE = L4_MABX_P.Unit_Delay_78_InitialCondition;
28942 L4_MABX_DW.Unit_Delay_8_DSTATE = L4_MABX_P.Unit_Delay_8_InitialCondition;
28943 L4_MABX_DW.Unit_Delay_82_DSTATE = L4_MABX_P.Unit_Delay_82_InitialCondition;
28944 L4_MABX_DW.Unit_Delay_83_DSTATE = L4_MABX_P.Unit_Delay_83_InitialCondition;
28945 L4_MABX_DW.Unit_Delay_84_DSTATE = L4_MABX_P.Unit_Delay_84_InitialCondition;
28946 L4_MABX_DW.Unit_Delay_85_DSTATE = L4_MABX_P.Unit_Delay_85_InitialCondition;
28947 L4_MABX_DW.Unit_Delay_86_DSTATE = L4_MABX_P.Unit_Delay_86_InitialCondition;
28948 L4_MABX_DW.Unit_Delay_87_DSTATE = L4_MABX_P.Unit_Delay_87_InitialCondition;
28949 L4_MABX_DW.Unit_Delay_88_DSTATE = L4_MABX_P.Unit_Delay_88_InitialCondition;
28950 L4_MABX_DW.Unit_Delay_89_DSTATE = L4_MABX_P.Unit_Delay_89_InitialCondition;
28951 L4_MABX_DW.Unit_Delay_9_DSTATE = L4_MABX_P.Unit_Delay_9_InitialCondition;
28952 L4_MABX_DW.Unit_Delay_90_DSTATE = L4_MABX_P.Unit_Delay_90_InitialCondition;
28953 L4_MABX_DW.Unit_Delay_91_DSTATE = L4_MABX_P.Unit_Delay_91_InitialCondition;
28954 L4_MABX_DW.Unit_Delay_92_DSTATE = L4_MABX_P.Unit_Delay_92_InitialCondition;
28955 L4_MABX_DW.Unit_Delay_93_DSTATE = L4_MABX_P.Unit_Delay_93_InitialCondition;
28956 L4_MABX_DW.Unit_Delay_94_DSTATE = L4_MABX_P.Unit_Delay_94_InitialCondition;
28957 L4_MABX_DW.Unit_Delay_95_DSTATE = L4_MABX_P.Unit_Delay_95_InitialCondition;
28958 L4_MABX_DW.Unit_Delay_96_DSTATE = L4_MABX_P.Unit_Delay_96_InitialCondition;
28959 L4_MABX_DW.Unit_Delay_97_DSTATE = L4_MABX_P.Unit_Delay_97_InitialCondition;
28960 L4_MABX_DW.Unit_Delay_98_DSTATE = L4_MABX_P.Unit_Delay_98_InitialCondition;
28961 L4_MABX_DW.Unit_Delay_99_DSTATE = L4_MABX_P.Unit_Delay_99_InitialCondition;
28962
28963 /* InitializeConditions for UnitDelay: '<S631>/Unit_Delay2' */
28964 L4_MABX_DW.Unit_Delay2_DSTATE_l = L4_MABX_P.Unit_Delay2_InitialCondition_d;
28965
28966 /* InitializeConditions for UnitDelay: '<S631>/Unit_Delay1' */
28967 L4_MABX_DW.Unit_Delay1_DSTATE_o = L4_MABX_P.Unit_Delay1_InitialCondition_k;
28968
28969 /* InitializeConditions for UnitDelay: '<S638>/Unit_Delay' */
28970 L4_MABX_DW.Unit_Delay_DSTATE_c1 = L4_MABX_P.Unit_Delay_InitialCondition_c5;
28971
28972 /* InitializeConditions for UnitDelay: '<S10>/Unit_Delay' */
28973 L4_MABX_DW.Unit_Delay_DSTATE_do = L4_MABX_P.Unit_Delay_InitialCondition_jp;
28974
28975 /* SystemInitialize for Enabled SubSystem: '<S483>/AIR1' */
28976 /* SystemInitialize for Outport: '<S484>/PneumaticSupplyPress' */
28977 L4_MABX_B.SFunction1_o1_of = L4_MABX_P.PneumaticSupplyPress_Y0;
28978
28979 /* SystemInitialize for Outport: '<S484>/ParkingAnd_orTrailerAirPress' */
28980 L4_MABX_B.SFunction1_o2_j3 = L4_MABX_P.ParkingAnd_orTrailerAirPress_Y0;
28981
28982 /* SystemInitialize for Outport: '<S484>/ServiceBrakeCircuit1AirPress' */
28983 L4_MABX_B.SFunction1_o3_ll = L4_MABX_P.ServiceBrakeCircuit1AirPress_Y0;
28984
28985 /* SystemInitialize for Outport: '<S484>/ServiceBrakeCircuit2AirPress' */
28986 L4_MABX_B.SFunction1_o4_ig = L4_MABX_P.ServiceBrakeCircuit2AirPress_Y0;
28987
28988 /* SystemInitialize for Outport: '<S484>/AuxEquipmentSupplyPress' */
28989 L4_MABX_B.SFunction1_o5_el = L4_MABX_P.AuxEquipmentSupplyPress_Y0;
28990
28991 /* SystemInitialize for Outport: '<S484>/AirSuspensionSupplyPress' */
28992 L4_MABX_B.SFunction1_o6_mn = L4_MABX_P.AirSuspensionSupplyPress_Y0;
28993
28994 /* SystemInitialize for Outport: '<S484>/AirCompressorStatus' */
28995 L4_MABX_B.SFunction1_o7_lz = L4_MABX_P.AirCompressorStatus_Y0;
28996
28997 /* SystemInitialize for Outport: '<S484>/PowertrainCircuitAirSupplyPress' */
28998 L4_MABX_B.SFunction1_o8_p5 = L4_MABX_P.PowertrainCircuitAirSupplyPress;
28999
29000 /* SystemInitialize for Outport: '<S484>/RX status' */
29001 L4_MABX_B.SFunction1_o9_ni = L4_MABX_P.RXstatus_Y0_o;
29002
29003 /* SystemInitialize for Outport: '<S484>/RX time' */
29004 L4_MABX_B.SFunction1_o10_ll = L4_MABX_P.RXtime_Y0_l;
29005
29006 /* SystemInitialize for Outport: '<S484>/RX delta time' */
29007 L4_MABX_B.SFunction1_o11_o = L4_MABX_P.RXdeltatime_Y0_kv;
29008
29009 /* End of SystemInitialize for SubSystem: '<S483>/AIR1' */
29010
29011 /* SystemInitialize for Enabled SubSystem: '<S485>/AMB' */
29012 /* SystemInitialize for Outport: '<S486>/BarometricPress' */
29013 L4_MABX_B.SFunction1_o1_afv = L4_MABX_P.BarometricPress_Y0;
29014
29015 /* SystemInitialize for Outport: '<S486>/CabInteriorTemp' */
29016 L4_MABX_B.SFunction1_o2_dd = L4_MABX_P.CabInteriorTemp_Y0;
29017
29018 /* SystemInitialize for Outport: '<S486>/AmbientAirTemp' */
29019 L4_MABX_B.SFunction1_o3_ng = L4_MABX_P.AmbientAirTemp_Y0;
29020
29021 /* SystemInitialize for Outport: '<S486>/EngAirIntakeTemp' */
29022 L4_MABX_B.SFunction1_o4_dd = L4_MABX_P.EngAirIntakeTemp_Y0;
29023
29024 /* SystemInitialize for Outport: '<S486>/RoadSurfaceTemp' */
29025 L4_MABX_B.SFunction1_o5_c5 = L4_MABX_P.RoadSurfaceTemp_Y0;
29026
29027 /* SystemInitialize for Outport: '<S486>/RX status' */
29028 L4_MABX_B.SFunction1_o6_nu = L4_MABX_P.RXstatus_Y0_j;
29029
29030 /* SystemInitialize for Outport: '<S486>/RX time' */
29031 L4_MABX_B.SFunction1_o7_lg = L4_MABX_P.RXtime_Y0_j;
29032
29033 /* SystemInitialize for Outport: '<S486>/RX delta time' */
29034 L4_MABX_B.SFunction1_o8_fw = L4_MABX_P.RXdeltatime_Y0_a;
29035
29036 /* End of SystemInitialize for SubSystem: '<S485>/AMB' */
29037
29038 /* SystemInitialize for Atomic SubSystem: '<S804>/CAN_TX_1000ms' */
29039 /* SystemInitialize for Enabled SubSystem: '<S824>/AIR1' */
29040 /* SystemInitialize for Outport: '<S825>/TX status' */
29041 L4_MABX_B.SFunction1_o1_l = L4_MABX_P.TXstatus_Y0;
29042
29043 /* SystemInitialize for Outport: '<S825>/TX time' */
29044 L4_MABX_B.SFunction1_o2_h5 = L4_MABX_P.TXtime_Y0;
29045
29046 /* SystemInitialize for Outport: '<S825>/TX delta time' */
29047 L4_MABX_B.SFunction1_o3_hw = L4_MABX_P.TXdeltatime_Y0;
29048
29049 /* SystemInitialize for Outport: '<S825>/TX delay time' */
29050 L4_MABX_B.SFunction1_o4_gy = L4_MABX_P.TXdelaytime_Y0;
29051
29052 /* End of SystemInitialize for SubSystem: '<S824>/AIR1' */
29053
29054 /* SystemInitialize for Enabled SubSystem: '<S832>/AMB' */
29055 /* SystemInitialize for Outport: '<S833>/TX status' */
29056 L4_MABX_B.SFunction1_o1_n1 = L4_MABX_P.TXstatus_Y0_d;
29057
29058 /* SystemInitialize for Outport: '<S833>/TX time' */
29059 L4_MABX_B.SFunction1_o2_df = L4_MABX_P.TXtime_Y0_m;
29060
29061 /* SystemInitialize for Outport: '<S833>/TX delta time' */
29062 L4_MABX_B.SFunction1_o3_o2 = L4_MABX_P.TXdeltatime_Y0_f;
29063
29064 /* SystemInitialize for Outport: '<S833>/TX delay time' */
29065 L4_MABX_B.SFunction1_o4_l4 = L4_MABX_P.TXdelaytime_Y0_n;
29066
29067 /* End of SystemInitialize for SubSystem: '<S832>/AMB' */
29068 /* End of SystemInitialize for SubSystem: '<S804>/CAN_TX_1000ms' */
29069
29070 /* SystemInitialize for Chart: '<S800>/Chart' */
29071 L4_MABX_DW.is_active_c5_SUB_ECU_L4_MABX_HW = 0U;
29072 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_NO_ACTIVE_CHILD;
29073
29074 /* SystemInitialize for Chart: '<S718>/Health State Machine PWM Sensor 1' */
29075 L4_MABX_DW.is_FAILURE_DETECTED_m = L4_MABX_IN_NO_ACTIVE_CHILD;
29076 L4_MABX_DW.is_active_c9_SUB_ECU_L4_MABX_HW = 0U;
29077 L4_MABX_DW.is_c9_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_NO_ACTIVE_CHILD;
29078
29079 /* SystemInitialize for Chart: '<S718>/Health State Machine PWM Sensor 2' */
29080 L4_MABX_DW.is_FAILURE_DETECTED = L4_MABX_IN_NO_ACTIVE_CHILD;
29081 L4_MABX_DW.is_active_c10_SUB_ECU_L4_MABX_H = 0U;
29082 L4_MABX_DW.is_c10_SUB_ECU_L4_MABX_HW_Inter = L4_MABX_IN_NO_ACTIVE_CHILD;
29083
29084 /* SystemInitialize for Enabled SubSystem: '<S715>/Slew_at_event' */
29085 /* InitializeConditions for UnitDelay: '<S793>/Unit_Delay' */
29086 L4_MABX_DW.Unit_Delay_DSTATE_fk = L4_MABX_P.Unit_Delay_InitialCondition_n;
29087
29088 /* InitializeConditions for UnitDelay: '<S794>/Unit_Delay' */
29089 L4_MABX_DW.Unit_Delay_DSTATE_fo = L4_MABX_P.Unit_Delay_InitialCondition_c3;
29090
29091 /* InitializeConditions for UnitDelay: '<S797>/FixPt Unit Delay2' */
29092 L4_MABX_DW.FixPtUnitDelay2_DSTATE_m =
29093 L4_MABX_P.FixPtUnitDelay2_InitialCondi_e1;
29094
29095 /* InitializeConditions for UnitDelay: '<S797>/FixPt Unit Delay1' */
29096 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g =
29097 L4_MABX_P.FixPtUnitDelay1_InitialCondit_c;
29098
29099 /* InitializeConditions for UnitDelay: '<S792>/Unit_Delay' */
29100 L4_MABX_DW.Unit_Delay_DSTATE_ki = L4_MABX_P.Unit_Delay_InitialCondition_c4;
29101
29102 /* SystemInitialize for Outport: '<S722>/F_Out_slewing' */
29103 L4_MABX_B.LogicalOperator_p = L4_MABX_P.F_Out_slewing_Y0_i;
29104
29105 /* SystemInitialize for Outport: '<S722>/Out' */
29106 L4_MABX_B.If_Then_Else_ki.Switch = L4_MABX_P.Out_Y0_m;
29107
29108 /* End of SystemInitialize for SubSystem: '<S715>/Slew_at_event' */
29109
29110 /* SystemInitialize for Enabled SubSystem: '<S493>/CCVS1_31' */
29111 /* SystemInitialize for Outport: '<S494>/TwoSpeedAxleSwitch' */
29112 L4_MABX_B.SFunction1_o1_fy = L4_MABX_P.TwoSpeedAxleSwitch_Y0_c;
29113
29114 /* SystemInitialize for Outport: '<S494>/ParkingBrakeSwitch' */
29115 L4_MABX_B.SFunction1_o2_ez = L4_MABX_P.ParkingBrakeSwitch_Y0_c;
29116
29117 /* SystemInitialize for Outport: '<S494>/CruiseCtrlPauseSwitch' */
29118 L4_MABX_B.SFunction1_o3_jq = L4_MABX_P.CruiseCtrlPauseSwitch_Y0_e;
29119
29120 /* SystemInitialize for Outport: '<S494>/ParkBrakeReleaseInhibitRq' */
29121 L4_MABX_B.SFunction1_o4_dz = L4_MABX_P.ParkBrakeReleaseInhibitRq_Y0_j;
29122
29123 /* SystemInitialize for Outport: '<S494>/WheelBasedVehicleSpeed' */
29124 L4_MABX_B.SFunction1_o5_oc = L4_MABX_P.WheelBasedVehicleSpeed_Y0_p;
29125
29126 /* SystemInitialize for Outport: '<S494>/CruiseCtrlActive' */
29127 L4_MABX_B.SFunction1_o6_he = L4_MABX_P.CruiseCtrlActive_Y0_m;
29128
29129 /* SystemInitialize for Outport: '<S494>/CruiseCtrlEnableSwitch' */
29130 L4_MABX_B.SFunction1_o7_c = L4_MABX_P.CruiseCtrlEnableSwitch_Y0_l;
29131
29132 /* SystemInitialize for Outport: '<S494>/BrakeSwitch' */
29133 L4_MABX_B.SFunction1_o8_jt = L4_MABX_P.BrakeSwitch_Y0_f;
29134
29135 /* SystemInitialize for Outport: '<S494>/ClutchSwitch' */
29136 L4_MABX_B.SFunction1_o9_lc = L4_MABX_P.ClutchSwitch_Y0_b;
29137
29138 /* SystemInitialize for Outport: '<S494>/CruiseCtrlSetSwitch' */
29139 L4_MABX_B.SFunction1_o10_lg = L4_MABX_P.CruiseCtrlSetSwitch_Y0_o;
29140
29141 /* SystemInitialize for Outport: '<S494>/CruiseCtrlCoastSwitch' */
29142 L4_MABX_B.SFunction1_o11_mn = L4_MABX_P.CruiseCtrlCoastSwitch_Y0_g;
29143
29144 /* SystemInitialize for Outport: '<S494>/CruiseCtrlResumeSwitch' */
29145 L4_MABX_B.SFunction1_o12_ir = L4_MABX_P.CruiseCtrlResumeSwitch_Y0_k;
29146
29147 /* SystemInitialize for Outport: '<S494>/CruiseCtrlAccelerateSwitch' */
29148 L4_MABX_B.SFunction1_o13_fh = L4_MABX_P.CruiseCtrlAccelerateSwitch_Y0_k;
29149
29150 /* SystemInitialize for Outport: '<S494>/CruiseCtrlSetSpeed' */
29151 L4_MABX_B.SFunction1_o14_l = L4_MABX_P.CruiseCtrlSetSpeed_Y0_m;
29152
29153 /* SystemInitialize for Outport: '<S494>/PTOGovernorState' */
29154 L4_MABX_B.SFunction1_o15_a = L4_MABX_P.PTOGovernorState_Y0_n;
29155
29156 /* SystemInitialize for Outport: '<S494>/CruiseCtrlStates' */
29157 L4_MABX_B.SFunction1_o16_m = L4_MABX_P.CruiseCtrlStates_Y0_l;
29158
29159 /* SystemInitialize for Outport: '<S494>/EngIdleIncrementSwitch' */
29160 L4_MABX_B.SFunction1_o17_d2 = L4_MABX_P.EngIdleIncrementSwitch_Y0_c;
29161
29162 /* SystemInitialize for Outport: '<S494>/EngIdleDecrementSwitch' */
29163 L4_MABX_B.SFunction1_o18_m = L4_MABX_P.EngIdleDecrementSwitch_Y0_n;
29164
29165 /* SystemInitialize for Outport: '<S494>/EngTestModeSwitch' */
29166 L4_MABX_B.SFunction1_o19_m = L4_MABX_P.EngTestModeSwitch_Y0_f;
29167
29168 /* SystemInitialize for Outport: '<S494>/EngShutdownOverrideSwitch' */
29169 L4_MABX_B.SFunction1_o20_f = L4_MABX_P.EngShutdownOverrideSwitch_Y0_g;
29170
29171 /* SystemInitialize for Outport: '<S494>/RX status' */
29172 L4_MABX_B.SFunction1_o21_p = L4_MABX_P.RXstatus_Y0_d;
29173
29174 /* SystemInitialize for Outport: '<S494>/RX time' */
29175 L4_MABX_B.SFunction1_o22_h = L4_MABX_P.RXtime_Y0_pv;
29176
29177 /* SystemInitialize for Outport: '<S494>/RX delta time' */
29178 L4_MABX_B.SFunction1_o23_g = L4_MABX_P.RXdeltatime_Y0_m;
29179
29180 /* End of SystemInitialize for SubSystem: '<S493>/CCVS1_31' */
29181
29182 /* SystemInitialize for Enabled SubSystem: '<S504>/EBC2_0B1' */
29183 /* SystemInitialize for Outport: '<S505>/FrontAxleSpeed' */
29184 L4_MABX_B.SFunction1_o1_c4 = L4_MABX_P.FrontAxleSpeed_Y0;
29185
29186 /* SystemInitialize for Outport: '<S505>/RelativeSpeedFrontAxleLeftWheel' */
29187 L4_MABX_B.SFunction1_o2_p3 = L4_MABX_P.RelativeSpeedFrontAxleLeftWheel;
29188
29189 /* SystemInitialize for Outport: '<S505>/RlativeSpeedFrontAxleRightWheel' */
29190 L4_MABX_B.SFunction1_o3_id = L4_MABX_P.RlativeSpeedFrontAxleRightWheel;
29191
29192 /* SystemInitialize for Outport: '<S505>/RelativeSpeedRearAxle1LeftWheel' */
29193 L4_MABX_B.SFunction1_o4_ln = L4_MABX_P.RelativeSpeedRearAxle1LeftWheel;
29194
29195 /* SystemInitialize for Outport: '<S505>/RlativeSpeedRearAxle1RightWheel' */
29196 L4_MABX_B.SFunction1_o5_pl = L4_MABX_P.RlativeSpeedRearAxle1RightWheel;
29197
29198 /* SystemInitialize for Outport: '<S505>/RelativeSpeedRearAxle2LeftWheel' */
29199 L4_MABX_B.SFunction1_o6_au = L4_MABX_P.RelativeSpeedRearAxle2LeftWheel;
29200
29201 /* SystemInitialize for Outport: '<S505>/RlativeSpeedRearAxle2RightWheel' */
29202 L4_MABX_B.SFunction1_o7_g = L4_MABX_P.RlativeSpeedRearAxle2RightWheel;
29203
29204 /* SystemInitialize for Outport: '<S505>/RX status' */
29205 L4_MABX_B.SFunction1_o8_l = L4_MABX_P.RXstatus_Y0_c4;
29206
29207 /* SystemInitialize for Outport: '<S505>/RX time' */
29208 L4_MABX_B.SFunction1_o9_p = L4_MABX_P.RXtime_Y0_cs;
29209
29210 /* SystemInitialize for Outport: '<S505>/RX delta time' */
29211 L4_MABX_B.SFunction1_o10_p = L4_MABX_P.RXdeltatime_Y0_o1;
29212
29213 /* End of SystemInitialize for SubSystem: '<S504>/EBC2_0B1' */
29214
29215 /* SystemInitialize for Enabled SubSystem: '<S562>/HRW_0B' */
29216 /* SystemInitialize for Outport: '<S563>/FrontAxleLeftWheelSpeed' */
29217 L4_MABX_B.SFunction1_o1_gh = L4_MABX_P.FrontAxleLeftWheelSpeed_Y0;
29218
29219 /* SystemInitialize for Outport: '<S563>/FrontAxleRightWheelSpeed' */
29220 L4_MABX_B.SFunction1_o2_k5 = L4_MABX_P.FrontAxleRightWheelSpeed_Y0;
29221
29222 /* SystemInitialize for Outport: '<S563>/RearAxleLeftWheelSpeed' */
29223 L4_MABX_B.SFunction1_o3_n1d = L4_MABX_P.RearAxleLeftWheelSpeed_Y0;
29224
29225 /* SystemInitialize for Outport: '<S563>/RearAxleRightWheelSpeed' */
29226 L4_MABX_B.SFunction1_o4_gd = L4_MABX_P.RearAxleRightWheelSpeed_Y0;
29227
29228 /* SystemInitialize for Outport: '<S563>/RX status' */
29229 L4_MABX_B.SFunction1_o5_hp = L4_MABX_P.RXstatus_Y0_dc;
29230
29231 /* SystemInitialize for Outport: '<S563>/RX time' */
29232 L4_MABX_B.SFunction1_o6_l4 = L4_MABX_P.RXtime_Y0_ee;
29233
29234 /* SystemInitialize for Outport: '<S563>/RX delta time' */
29235 L4_MABX_B.SFunction1_o7_lc = L4_MABX_P.RXdeltatime_Y0_id;
29236
29237 /* End of SystemInitialize for SubSystem: '<S562>/HRW_0B' */
29238
29239 /* SystemInitialize for Enabled SubSystem: '<S502>/EBC1_0B' */
29240 /* SystemInitialize for Outport: '<S503>/ASREngCtrlActive' */
29241 L4_MABX_B.SFunction1_o1_bs = L4_MABX_P.ASREngCtrlActive_Y0_o;
29242
29243 /* SystemInitialize for Outport: '<S503>/ASRBrakeCtrlActive' */
29244 L4_MABX_B.SFunction1_o2_m1 = L4_MABX_P.ASRBrakeCtrlActive_Y0_b;
29245
29246 /* SystemInitialize for Outport: '<S503>/AntiLockBrakingActive' */
29247 L4_MABX_B.SFunction1_o3_jx = L4_MABX_P.AntiLockBrakingActive_Y0_m;
29248
29249 /* SystemInitialize for Outport: '<S503>/EBSBrakeSwitch' */
29250 L4_MABX_B.SFunction1_o4_kq = L4_MABX_P.EBSBrakeSwitch_Y0_j;
29251
29252 /* SystemInitialize for Outport: '<S503>/BrakePedalPos' */
29253 L4_MABX_B.SFunction1_o5_cn = L4_MABX_P.BrakePedalPos_Y0_n;
29254
29255 /* SystemInitialize for Outport: '<S503>/ABSOffroadSwitch' */
29256 L4_MABX_B.SFunction1_o6_m4 = L4_MABX_P.ABSOffroadSwitch_Y0_o;
29257
29258 /* SystemInitialize for Outport: '<S503>/ASROffroadSwitch' */
29259 L4_MABX_B.SFunction1_o7_ix = L4_MABX_P.ASROffroadSwitch_Y0_k;
29260
29261 /* SystemInitialize for Outport: '<S503>/ASRHillHolderSwitch' */
29262 L4_MABX_B.SFunction1_o8_jo = L4_MABX_P.ASRHillHolderSwitch_Y0_e;
29263
29264 /* SystemInitialize for Outport: '<S503>/TractionCtrlOverrideSwitch' */
29265 L4_MABX_B.SFunction1_o9_h = L4_MABX_P.TractionCtrlOverrideSwitch_Y0_a;
29266
29267 /* SystemInitialize for Outport: '<S503>/AccelInterlockSwitch' */
29268 L4_MABX_B.SFunction1_o10_k = L4_MABX_P.AccelInterlockSwitch_Y0_p;
29269
29270 /* SystemInitialize for Outport: '<S503>/EngDerateSwitch' */
29271 L4_MABX_B.SFunction1_o11_c = L4_MABX_P.EngDerateSwitch_Y0_a;
29272
29273 /* SystemInitialize for Outport: '<S503>/EngAuxShutdownSwitch' */
29274 L4_MABX_B.SFunction1_o12_o = L4_MABX_P.EngAuxShutdownSwitch_Y0_k;
29275
29276 /* SystemInitialize for Outport: '<S503>/RemoteAccelEnableSwitch' */
29277 L4_MABX_B.SFunction1_o13_f = L4_MABX_P.RemoteAccelEnableSwitch_Y0_g;
29278
29279 /* SystemInitialize for Outport: '<S503>/EngRetarderSelection' */
29280 L4_MABX_B.SFunction1_o14_o = L4_MABX_P.EngRetarderSelection_Y0_b;
29281
29282 /* SystemInitialize for Outport: '<S503>/ABSFullyOperational' */
29283 L4_MABX_B.SFunction1_o15_g = L4_MABX_P.ABSFullyOperational_Y0_k;
29284
29285 /* SystemInitialize for Outport: '<S503>/EBSRedWarningSignal' */
29286 L4_MABX_B.SFunction1_o16_j = L4_MABX_P.EBSRedWarningSignal_Y0_j;
29287
29288 /* SystemInitialize for Outport: '<S503>/ABS_EBSAmberWarningSignal' */
29289 L4_MABX_B.SFunction1_o17_m = L4_MABX_P.ABS_EBSAmberWarningSignal_Y0_p;
29290
29291 /* SystemInitialize for Outport: '<S503>/ATC_ASRInformationSignal' */
29292 L4_MABX_B.SFunction1_o18_o = L4_MABX_P.ATC_ASRInformationSignal_Y0_l;
29293
29294 /* SystemInitialize for Outport: '<S503>/SrcAddrssOfCtrllngDvcFrBrkCntrl' */
29295 L4_MABX_B.SFunction1_o19_f = L4_MABX_P.SrcAddrssOfCtrllngDvcFrBrkCnt_f;
29296
29297 /* SystemInitialize for Outport: '<S503>/HaltBrakeSwitch' */
29298 L4_MABX_B.SFunction1_o20_p = L4_MABX_P.HaltBrakeSwitch_Y0_e;
29299
29300 /* SystemInitialize for Outport: '<S503>/TrailerABSStatus' */
29301 L4_MABX_B.SFunction1_o21_o = L4_MABX_P.TrailerABSStatus_Y0_h;
29302
29303 /* SystemInitialize for Outport: '<S503>/TrctrMntdTrilerABSWarningSignal' */
29304 L4_MABX_B.SFunction1_o22_d = L4_MABX_P.TrctrMntdTrilerABSWarningSign_j;
29305
29306 /* SystemInitialize for Outport: '<S503>/RX status' */
29307 L4_MABX_B.SFunction1_o23_m = L4_MABX_P.RXstatus_Y0_pe;
29308
29309 /* SystemInitialize for Outport: '<S503>/RX time' */
29310 L4_MABX_B.SFunction1_o24_i = L4_MABX_P.RXtime_Y0_f;
29311
29312 /* SystemInitialize for Outport: '<S503>/RX delta time' */
29313 L4_MABX_B.SFunction1_o25_k = L4_MABX_P.RXdeltatime_Y0_f1;
29314
29315 /* End of SystemInitialize for SubSystem: '<S502>/EBC1_0B' */
29316
29317 /* SystemInitialize for Enabled SubSystem: '<S557>/ETC2_031' */
29318 /* SystemInitialize for Outport: '<S558>/SPN524_TransSelectedGear' */
29319 L4_MABX_B.SFunction1_o1_gk = L4_MABX_P.SPN524_TransSelectedGear_Y0;
29320
29321 /* SystemInitialize for Outport: '<S558>/SPN526_TransActualGearRatio' */
29322 L4_MABX_B.SFunction1_o2_kj = L4_MABX_P.SPN526_TransActualGearRatio_Y0;
29323
29324 /* SystemInitialize for Outport: '<S558>/SPN523_TransCurrentGear' */
29325 L4_MABX_B.SFunction1_o3_b = L4_MABX_P.SPN523_TransCurrentGear_Y0;
29326
29327 /* SystemInitialize for Outport: '<S558>/RX status' */
29328 L4_MABX_B.SFunction1_o4_lu = L4_MABX_P.RXstatus_Y0_i5;
29329
29330 /* SystemInitialize for Outport: '<S558>/RX time' */
29331 L4_MABX_B.SFunction1_o5_kr = L4_MABX_P.RXtime_Y0_mx;
29332
29333 /* SystemInitialize for Outport: '<S558>/RX delta time' */
29334 L4_MABX_B.SFunction1_o6_p = L4_MABX_P.RXdeltatime_Y0_g3;
29335
29336 /* End of SystemInitialize for SubSystem: '<S557>/ETC2_031' */
29337
29338 /* SystemInitialize for Enabled SubSystem: '<S551>/EEC1_001' */
29339 /* SystemInitialize for Outport: '<S552>/EngTorqueMode' */
29340 L4_MABX_B.SFunction1_o1_kp = L4_MABX_P.EngTorqueMode_Y0;
29341
29342 /* SystemInitialize for Outport: '<S552>/ActlEngPrcntTrqueHighResolution' */
29343 L4_MABX_B.SFunction1_o2_pk = L4_MABX_P.ActlEngPrcntTrqueHighResolution;
29344
29345 /* SystemInitialize for Outport: '<S552>/DriversDemandEngPercentTorque' */
29346 L4_MABX_B.SFunction1_o3_el = L4_MABX_P.DriversDemandEngPercentTorque_Y;
29347
29348 /* SystemInitialize for Outport: '<S552>/ActualEngPercentTorque' */
29349 L4_MABX_B.SFunction1_o4_e1 = L4_MABX_P.ActualEngPercentTorque_Y0;
29350
29351 /* SystemInitialize for Outport: '<S552>/EngSpeed' */
29352 L4_MABX_B.SFunction1_o5_aw = L4_MABX_P.EngSpeed_Y0;
29353
29354 /* SystemInitialize for Outport: '<S552>/SrcAddrssOfCtrllngDvcFrEngCntrl' */
29355 L4_MABX_B.SFunction1_o6_j = L4_MABX_P.SrcAddrssOfCtrllngDvcFrEngCntrl;
29356
29357 /* SystemInitialize for Outport: '<S552>/EngStarterMode' */
29358 L4_MABX_B.SFunction1_o7_a0 = L4_MABX_P.EngStarterMode_Y0;
29359
29360 /* SystemInitialize for Outport: '<S552>/EngDemandPercentTorque' */
29361 L4_MABX_B.SFunction1_o8_e = L4_MABX_P.EngDemandPercentTorque_Y0;
29362
29363 /* SystemInitialize for Outport: '<S552>/RX status' */
29364 L4_MABX_B.SFunction1_o9_eh = L4_MABX_P.RXstatus_Y0_h;
29365
29366 /* SystemInitialize for Outport: '<S552>/RX time' */
29367 L4_MABX_B.SFunction1_o10_bm = L4_MABX_P.RXtime_Y0_ei;
29368
29369 /* SystemInitialize for Outport: '<S552>/RX delta time' */
29370 L4_MABX_B.SFunction1_o11_ai = L4_MABX_P.RXdeltatime_Y0_b;
29371
29372 /* End of SystemInitialize for SubSystem: '<S551>/EEC1_001' */
29373
29374 /* SystemInitialize for Enabled SubSystem: '<S555>/EEC3_001' */
29375 /* SystemInitialize for Outport: '<S556>/SPN514_NominalFrictionPercentTorque' */
29376 L4_MABX_B.SFunction1_o1_ia = L4_MABX_P.SPN514_NominalFrictionPercentTo;
29377
29378 /* SystemInitialize for Outport: '<S556>/SPN2978_EstEngParasiticLossesPercentTorque' */
29379 L4_MABX_B.SFunction1_o2_gg = L4_MABX_P.SPN2978_EstEngParasiticLossesPe;
29380
29381 /* SystemInitialize for Outport: '<S556>/RX status' */
29382 L4_MABX_B.SFunction1_o3_lh = L4_MABX_P.RXstatus_Y0_n;
29383
29384 /* SystemInitialize for Outport: '<S556>/RX time' */
29385 L4_MABX_B.SFunction1_o4_im = L4_MABX_P.RXtime_Y0_hv;
29386
29387 /* SystemInitialize for Outport: '<S556>/RX delta time' */
29388 L4_MABX_B.SFunction1_o5_fy = L4_MABX_P.RXdeltatime_Y0_l;
29389
29390 /* End of SystemInitialize for SubSystem: '<S555>/EEC3_001' */
29391
29392 /* SystemInitialize for Enabled SubSystem: '<S498>/CVW_0B1' */
29393 /* SystemInitialize for Outport: '<S499>/SPN1760_GrossCombinationVehicleWeight' */
29394 L4_MABX_B.SFunction1_o1_it = L4_MABX_P.SPN1760_GrossCombinationVehicle;
29395
29396 /* SystemInitialize for Outport: '<S499>/RX status' */
29397 L4_MABX_B.SFunction1_o2_dh = L4_MABX_P.RXstatus_Y0_kw;
29398
29399 /* SystemInitialize for Outport: '<S499>/RX time' */
29400 L4_MABX_B.SFunction1_o3_o5 = L4_MABX_P.RXtime_Y0_br;
29401
29402 /* SystemInitialize for Outport: '<S499>/RX delta time' */
29403 L4_MABX_B.SFunction1_o4_er = L4_MABX_P.RXdeltatime_Y0_o;
29404
29405 /* End of SystemInitialize for SubSystem: '<S498>/CVW_0B1' */
29406
29407 /* SystemInitialize for Enabled SubSystem: '<S479>/ACC1_2A_' */
29408 /* SystemInitialize for Outport: '<S480>/SpeedOfForwardVehicle' */
29409 L4_MABX_B.SFunction1_o1_p1 = L4_MABX_P.SpeedOfForwardVehicle_Y0;
29410
29411 /* SystemInitialize for Outport: '<S480>/DistanceToForwardVehicle' */
29412 L4_MABX_B.SFunction1_o2_jv = L4_MABX_P.DistanceToForwardVehicle_Y0;
29413
29414 /* SystemInitialize for Outport: '<S480>/AdaptiveCruiseCtrlSetSpeed' */
29415 L4_MABX_B.SFunction1_o3_he = L4_MABX_P.AdaptiveCruiseCtrlSetSpeed_Y0;
29416
29417 /* SystemInitialize for Outport: '<S480>/AdaptiveCruiseCtrlMode' */
29418 L4_MABX_B.SFunction1_o4_ir = L4_MABX_P.AdaptiveCruiseCtrlMode_Y0;
29419
29420 /* SystemInitialize for Outport: '<S480>/AdptveCruiseCtrlSetDistanceMode' */
29421 L4_MABX_B.SFunction1_o5_b2 = L4_MABX_P.AdptveCruiseCtrlSetDistanceMode;
29422
29423 /* SystemInitialize for Outport: '<S480>/RoadCurvature' */
29424 L4_MABX_B.SFunction1_o6_cb = L4_MABX_P.RoadCurvature_Y0;
29425
29426 /* SystemInitialize for Outport: '<S480>/ACCTargetDetected' */
29427 L4_MABX_B.SFunction1_o7_bf = L4_MABX_P.ACCTargetDetected_Y0;
29428
29429 /* SystemInitialize for Outport: '<S480>/ACCSystemShutoffWarning' */
29430 L4_MABX_B.SFunction1_o8_hg = L4_MABX_P.ACCSystemShutoffWarning_Y0;
29431
29432 /* SystemInitialize for Outport: '<S480>/ACCDistanceAlertSignal' */
29433 L4_MABX_B.SFunction1_o9_g = L4_MABX_P.ACCDistanceAlertSignal_Y0;
29434
29435 /* SystemInitialize for Outport: '<S480>/ForwardCollisionWarning' */
29436 L4_MABX_B.SFunction1_o10_ih = L4_MABX_P.ForwardCollisionWarning_Y0;
29437
29438 /* SystemInitialize for Outport: '<S480>/RX status' */
29439 L4_MABX_B.SFunction1_o11_p = L4_MABX_P.RXstatus_Y0_i;
29440
29441 /* SystemInitialize for Outport: '<S480>/RX time' */
29442 L4_MABX_B.SFunction1_o12_db = L4_MABX_P.RXtime_Y0_e;
29443
29444 /* SystemInitialize for Outport: '<S480>/RX delta time' */
29445 L4_MABX_B.SFunction1_o13_k = L4_MABX_P.RXdeltatime_Y0_g;
29446
29447 /* End of SystemInitialize for SubSystem: '<S479>/ACC1_2A_' */
29448
29449 /* SystemInitialize for Enabled SubSystem: '<S461>/CAN_TYPE1_RX_M1_C1' */
29450 /* SystemInitialize for Outport: '<S463>/byte1' */
29451 L4_MABX_B.SFunction1_o1_ax = L4_MABX_P.byte1_Y0;
29452
29453 /* SystemInitialize for Outport: '<S463>/byte2' */
29454 L4_MABX_B.SFunction1_o2_ln = L4_MABX_P.byte2_Y0;
29455
29456 /* SystemInitialize for Outport: '<S463>/byte3' */
29457 L4_MABX_B.SFunction1_o3_a2 = L4_MABX_P.byte3_Y0;
29458
29459 /* SystemInitialize for Outport: '<S463>/byte4' */
29460 L4_MABX_B.SFunction1_o4_he = L4_MABX_P.byte4_Y0;
29461
29462 /* SystemInitialize for Outport: '<S463>/byte5' */
29463 L4_MABX_B.SFunction1_o5_cb = L4_MABX_P.byte5_Y0;
29464
29465 /* SystemInitialize for Outport: '<S463>/byte6' */
29466 L4_MABX_B.SFunction1_o6_k = L4_MABX_P.byte6_Y0;
29467
29468 /* SystemInitialize for Outport: '<S463>/byte7' */
29469 L4_MABX_B.SFunction1_o7_j0 = L4_MABX_P.byte7_Y0;
29470
29471 /* SystemInitialize for Outport: '<S463>/byte8' */
29472 L4_MABX_B.SFunction1_o8_kq = L4_MABX_P.byte8_Y0;
29473
29474 /* SystemInitialize for Outport: '<S463>/RX status' */
29475 L4_MABX_B.SFunction1_o9_ph = L4_MABX_P.RXstatus_Y0;
29476
29477 /* SystemInitialize for Outport: '<S463>/RX time' */
29478 L4_MABX_B.SFunction1_o10_kx = L4_MABX_P.RXtime_Y0;
29479
29480 /* SystemInitialize for Outport: '<S463>/RX delta time' */
29481 L4_MABX_B.SFunction1_o11_jf = L4_MABX_P.RXdeltatime_Y0;
29482
29483 /* End of SystemInitialize for SubSystem: '<S461>/CAN_TYPE1_RX_M1_C1' */
29484
29485 /* SystemInitialize for Enabled SubSystem: '<S455>/Decode_TPCM_BAM' */
29486 /* SystemInitialize for Outport: '<S662>/Out' */
29487 L4_MABX_B.SPN2556_ControlByte_o = (uint8_T)L4_MABX_P.Out_Y0_l;
29488 L4_MABX_B.DataType_g5 = (uint16_T)L4_MABX_P.Out_Y0_l;
29489 L4_MABX_B.SPN2568_TotalNumberOfPackets = (uint8_T)L4_MABX_P.Out_Y0_l;
29490 L4_MABX_B.DataType_oa = (uint32_T)L4_MABX_P.Out_Y0_l;
29491
29492 /* End of SystemInitialize for SubSystem: '<S455>/Decode_TPCM_BAM' */
29493
29494 /* SystemInitialize for Enabled SubSystem: '<S470>/CAN_TYPE1_RX_M1_C1' */
29495 /* SystemInitialize for Outport: '<S472>/byte1' */
29496 L4_MABX_B.SFunction1_o1_bm = L4_MABX_P.byte1_Y0_f;
29497
29498 /* SystemInitialize for Outport: '<S472>/byte2' */
29499 L4_MABX_B.SFunction1_o2_dj = L4_MABX_P.byte2_Y0_i;
29500
29501 /* SystemInitialize for Outport: '<S472>/byte3' */
29502 L4_MABX_B.SFunction1_o3_px = L4_MABX_P.byte3_Y0_o;
29503
29504 /* SystemInitialize for Outport: '<S472>/byte4' */
29505 L4_MABX_B.SFunction1_o4_bh = L4_MABX_P.byte4_Y0_h;
29506
29507 /* SystemInitialize for Outport: '<S472>/byte5' */
29508 L4_MABX_B.SFunction1_o5_l = L4_MABX_P.byte5_Y0_d;
29509
29510 /* SystemInitialize for Outport: '<S472>/byte6' */
29511 L4_MABX_B.SFunction1_o6_i = L4_MABX_P.byte6_Y0_k;
29512
29513 /* SystemInitialize for Outport: '<S472>/byte7' */
29514 L4_MABX_B.SFunction1_o7_gk = L4_MABX_P.byte7_Y0_k;
29515
29516 /* SystemInitialize for Outport: '<S472>/byte8' */
29517 L4_MABX_B.SFunction1_o8_o = L4_MABX_P.byte8_Y0_n;
29518
29519 /* SystemInitialize for Outport: '<S472>/RX status' */
29520 L4_MABX_B.SFunction1_o9_j = L4_MABX_P.RXstatus_Y0_k;
29521
29522 /* SystemInitialize for Outport: '<S472>/RX time' */
29523 L4_MABX_B.SFunction1_o10_b4 = L4_MABX_P.RXtime_Y0_b;
29524
29525 /* SystemInitialize for Outport: '<S472>/RX delta time' */
29526 L4_MABX_B.SFunction1_o11_pn = L4_MABX_P.RXdeltatime_Y0_k;
29527
29528 /* End of SystemInitialize for SubSystem: '<S470>/CAN_TYPE1_RX_M1_C1' */
29529
29530 /* SystemInitialize for S-Function (rti_commonblock): '<S803>/S-Function1' incorporates:
29531 * SubSystem: '<S403>/IncrementTimer'
29532 */
29533 L4_MABX_IncrementTimer_Init();
29534
29535 /* End of SystemInitialize for S-Function (rti_commonblock): '<S803>/S-Function1' */
29536
29537 /* SystemInitialize for Enabled SubSystem: '<S422>/CAN_RX_EC1_00' */
29538 /* SystemInitialize for Enabled SubSystem: '<S506>/Decode' */
29539 /* InitializeConditions for UnitDelay: '<S509>/Unit_Delay' */
29540 L4_MABX_DW.Unit_Delay_DSTATE_ob = L4_MABX_P.Unit_Delay_InitialCondition_if;
29541 for (i = 0; i < 39; i++) {
29542 /* InitializeConditions for UnitDelay: '<S506>/Unit Delay' */
29543 L4_MABX_DW.UnitDelay_DSTATE_es[i] =
29544 L4_MABX_P.UnitDelay_InitialCondition_f[i];
29545
29546 /* SystemInitialize for Outport: '<S509>/RawData' */
29547 L4_MABX_B.Inport_a[i] = L4_MABX_P.RawData_Y0;
29548 }
29549
29550 /* SystemInitialize for Outport: '<S509>/RX_time' */
29551 L4_MABX_B.timeStamp_i = L4_MABX_P.RX_time_Y0;
29552
29553 /* SystemInitialize for Outport: '<S509>/RX_delta_time' */
29554 L4_MABX_B.Subtract_e = L4_MABX_P.RX_delta_time_Y0;
29555
29556 /* End of SystemInitialize for SubSystem: '<S506>/Decode' */
29557
29558 /* SystemInitialize for Outport: '<S506>/RX_status' */
29559 L4_MABX_B.RX_status_cc = L4_MABX_P.RX_status_Y0;
29560
29561 /* End of SystemInitialize for SubSystem: '<S422>/CAN_RX_EC1_00' */
29562
29563 /* SystemInitialize for Enabled SubSystem: '<S624>/VDC1_0B_' */
29564 /* SystemInitialize for Outport: '<S625>/VDCInformationSignal' */
29565 L4_MABX_B.SFunction1_o1_mu = L4_MABX_P.VDCInformationSignal_Y0;
29566
29567 /* SystemInitialize for Outport: '<S625>/VDCFullyOperational' */
29568 L4_MABX_B.SFunction1_o2_m = L4_MABX_P.VDCFullyOperational_Y0;
29569
29570 /* SystemInitialize for Outport: '<S625>/VDCBrakeLightRq' */
29571 L4_MABX_B.SFunction1_o3_jl = L4_MABX_P.VDCBrakeLightRq_Y0;
29572
29573 /* SystemInitialize for Outport: '<S625>/ROPEngCtrlActive' */
29574 L4_MABX_B.SFunction1_o4_ne = L4_MABX_P.ROPEngCtrlActive_Y0;
29575
29576 /* SystemInitialize for Outport: '<S625>/ROPBrakeCtrlActive' */
29577 L4_MABX_B.SFunction1_o5_p = L4_MABX_P.ROPBrakeCtrlActive_Y0;
29578
29579 /* SystemInitialize for Outport: '<S625>/YCEngCtrlActive' */
29580 L4_MABX_B.SFunction1_o6_e = L4_MABX_P.YCEngCtrlActive_Y0;
29581
29582 /* SystemInitialize for Outport: '<S625>/YCBrakeCtrlActive' */
29583 L4_MABX_B.SFunction1_o7_l = L4_MABX_P.YCBrakeCtrlActive_Y0;
29584
29585 /* SystemInitialize for Outport: '<S625>/RX status' */
29586 L4_MABX_B.SFunction1_o8_h = L4_MABX_P.RXstatus_Y0_d3;
29587
29588 /* SystemInitialize for Outport: '<S625>/RX time' */
29589 L4_MABX_B.SFunction1_o9_n = L4_MABX_P.RXtime_Y0_a;
29590
29591 /* SystemInitialize for Outport: '<S625>/RX delta time' */
29592 L4_MABX_B.SFunction1_o10 = L4_MABX_P.RXdeltatime_Y0_o3;
29593
29594 /* End of SystemInitialize for SubSystem: '<S624>/VDC1_0B_' */
29595
29596 /* SystemInitialize for Enabled SubSystem: '<S626>/VDC2_0B1' */
29597 /* SystemInitialize for Outport: '<S627>/SteerWheelAngle' */
29598 SteerWheelAngle = L4_MABX_P.SteerWheelAngle_Y0;
29599
29600 /* SystemInitialize for Outport: '<S627>/SteerWheelTurnCounter' */
29601 L4_MABX_B.SFunction1_o2_e1 = L4_MABX_P.SteerWheelTurnCounter_Y0;
29602
29603 /* SystemInitialize for Outport: '<S627>/SteerWheelAngleSensorType' */
29604 L4_MABX_B.SFunction1_o3_ko = L4_MABX_P.SteerWheelAngleSensorType_Y0;
29605
29606 /* SystemInitialize for Outport: '<S627>/YawRate' */
29607 YawRate = L4_MABX_P.YawRate_Y0;
29608
29609 /* SystemInitialize for Outport: '<S627>/LateralAcceleration' */
29610 L4_MABX_B.SFunction1_o5_i = L4_MABX_P.LateralAcceleration_Y0;
29611
29612 /* SystemInitialize for Outport: '<S627>/LongitudinalAcceleration' */
29613 SPN1810_LongitudinalAcceleration = L4_MABX_P.LongitudinalAcceleration_Y0;
29614
29615 /* SystemInitialize for Outport: '<S627>/RX status' */
29616 L4_MABX_B.SFunction1_o7_e = L4_MABX_P.RXstatus_Y0_nc;
29617
29618 /* SystemInitialize for Outport: '<S627>/RX time' */
29619 L4_MABX_B.SFunction1_o8_d = L4_MABX_P.RXtime_Y0_ej;
29620
29621 /* SystemInitialize for Outport: '<S627>/RX delta time' */
29622 L4_MABX_B.SFunction1_o9 = L4_MABX_P.RXdeltatime_Y0_os;
29623
29624 /* End of SystemInitialize for SubSystem: '<S626>/VDC2_0B1' */
29625
29626 /* SystemInitialize for Enabled SubSystem: '<S445>/CAN_RX_VI_00' */
29627 /* SystemInitialize for Enabled SubSystem: '<S630>/Decode' */
29628 /* InitializeConditions for UnitDelay: '<S633>/Unit_Delay' */
29629 L4_MABX_DW.Unit_Delay_DSTATE_o = L4_MABX_P.Unit_Delay_InitialCondition_dj;
29630 for (i = 0; i < 17; i++) {
29631 /* InitializeConditions for UnitDelay: '<S630>/Unit Delay' */
29632 L4_MABX_DW.UnitDelay_DSTATE_k[i] =
29633 L4_MABX_P.UnitDelay_InitialCondition_k[i];
29634
29635 /* SystemInitialize for Outport: '<S633>/RawData' */
29636 L4_MABX_B.Inport[i] = L4_MABX_P.RawData_Y0_l;
29637 }
29638
29639 /* SystemInitialize for Outport: '<S633>/RX_time' */
29640 L4_MABX_B.timeStamp = L4_MABX_P.RX_time_Y0_b;
29641
29642 /* SystemInitialize for Outport: '<S633>/RX_delta_time' */
29643 L4_MABX_B.Subtract_oo = L4_MABX_P.RX_delta_time_Y0_d;
29644
29645 /* End of SystemInitialize for SubSystem: '<S630>/Decode' */
29646
29647 /* SystemInitialize for Outport: '<S630>/RX_status' */
29648 L4_MABX_B.RX_status_os = L4_MABX_P.RX_status_Y0_n;
29649
29650 /* End of SystemInitialize for SubSystem: '<S445>/CAN_RX_VI_00' */
29651
29652 /* SystemInitialize for Enabled SubSystem: '<S612>/SSI2_031' */
29653 /* SystemInitialize for Outport: '<S613>/PitchAngleExRange' */
29654 L4_MABX_B.SFunction1_o1_cb = L4_MABX_P.PitchAngleExRange_Y0;
29655
29656 /* SystemInitialize for Outport: '<S613>/RollAngleExRange' */
29657 L4_MABX_B.SFunction1_o2_eh = L4_MABX_P.RollAngleExRange_Y0;
29658
29659 /* SystemInitialize for Outport: '<S613>/PitchAngleExRangeCompensation' */
29660 L4_MABX_B.SFunction1_o3_cy = L4_MABX_P.PitchAngleExRangeCompensation_Y;
29661
29662 /* SystemInitialize for Outport: '<S613>/PitchAngleExRangeFigureOfMerit' */
29663 L4_MABX_B.SFunction1_o4_k5 = L4_MABX_P.PitchAngleExRangeFigureOfMerit_;
29664
29665 /* SystemInitialize for Outport: '<S613>/RollAngleExRangeCompensation' */
29666 L4_MABX_B.SFunction1_o5_c = L4_MABX_P.RollAngleExRangeCompensation_Y0;
29667
29668 /* SystemInitialize for Outport: '<S613>/RollAngleExRangeFigureOfMerit' */
29669 L4_MABX_B.SFunction1_o6_m0 = L4_MABX_P.RollAngleExRangeFigureOfMerit_Y;
29670
29671 /* SystemInitialize for Outport: '<S613>/RllAndPtchExRngMsurementLatency' */
29672 L4_MABX_B.SFunction1_o7_o = L4_MABX_P.RllAndPtchExRngMsurementLatency;
29673
29674 /* SystemInitialize for Outport: '<S613>/RX status' */
29675 L4_MABX_B.SFunction1_o8_j = L4_MABX_P.RXstatus_Y0_jj;
29676
29677 /* SystemInitialize for Outport: '<S613>/RX time' */
29678 L4_MABX_B.SFunction1_o9_i = L4_MABX_P.RXtime_Y0_om;
29679
29680 /* SystemInitialize for Outport: '<S613>/RX delta time' */
29681 L4_MABX_B.SFunction1_o10_l = L4_MABX_P.RXdeltatime_Y0_fz;
29682
29683 /* End of SystemInitialize for SubSystem: '<S612>/SSI2_031' */
29684
29685 /* SystemInitialize for Enabled SubSystem: '<S603>/PX2_LanePosEst' */
29686 /* SystemInitialize for Outport: '<S606>/PX2_LanePosEstAngle' */
29687 L4_MABX_B.SFunction1_o1_dc = L4_MABX_P.PX2_LanePosEstAngle_Y0;
29688
29689 /* SystemInitialize for Outport: '<S606>/PX2_LanePosEstNumPoints' */
29690 L4_MABX_B.SFunction1_o2_et = L4_MABX_P.PX2_LanePosEstNumPoints_Y0;
29691
29692 /* SystemInitialize for Outport: '<S606>/PX2_LanePosEstPosition' */
29693 L4_MABX_B.SFunction1_o3_nn = L4_MABX_P.PX2_LanePosEstPosition_Y0;
29694
29695 /* SystemInitialize for Outport: '<S606>/PX2_LanePosEstNumLanes' */
29696 L4_MABX_B.SFunction1_o4_a = L4_MABX_P.PX2_LanePosEstNumLanes_Y0;
29697
29698 /* SystemInitialize for Outport: '<S606>/RX status' */
29699 L4_MABX_B.SFunction1_o5_j = L4_MABX_P.RXstatus_Y0_nl;
29700
29701 /* SystemInitialize for Outport: '<S606>/RX time' */
29702 L4_MABX_B.SFunction1_o6_eu = L4_MABX_P.RXtime_Y0_fa;
29703
29704 /* SystemInitialize for Outport: '<S606>/RX delta time' */
29705 L4_MABX_B.SFunction1_o7_lv = L4_MABX_P.RXdeltatime_Y0_aw;
29706
29707 /* End of SystemInitialize for SubSystem: '<S603>/PX2_LanePosEst' */
29708
29709 /* SystemInitialize for Enabled SubSystem: '<S610>/Bendix_Prop2C2_Status_30' */
29710 /* SystemInitialize for Outport: '<S611>/PressureP4' */
29711 L4_MABX_B.SFunction1_o1_gv = L4_MABX_P.PressureP4_Y0;
29712
29713 /* SystemInitialize for Outport: '<S611>/PressureP1' */
29714 L4_MABX_B.SFunction1_o2_iz = L4_MABX_P.PressureP1_Y0;
29715
29716 /* SystemInitialize for Outport: '<S611>/PressureP21' */
29717 L4_MABX_B.SFunction1_o3_p = L4_MABX_P.PressureP21_Y0;
29718
29719 /* SystemInitialize for Outport: '<S611>/PressureP22' */
29720 L4_MABX_B.SFunction1_o4_kn = L4_MABX_P.PressureP22_Y0;
29721
29722 /* SystemInitialize for Outport: '<S611>/PressureP42' */
29723 L4_MABX_B.SFunction1_o5_o = L4_MABX_P.PressureP42_Y0;
29724
29725 /* SystemInitialize for Outport: '<S611>/XPR1ControlStatus' */
29726 L4_MABX_B.SFunction1_o6_lq = L4_MABX_P.XPR1ControlStatus_Y0;
29727
29728 /* SystemInitialize for Outport: '<S611>/XPR2ControlStatus' */
29729 L4_MABX_B.SFunction1_o7_p = L4_MABX_P.XPR2ControlStatus_Y0;
29730
29731 /* SystemInitialize for Outport: '<S611>/XPR3ControlStatus' */
29732 L4_MABX_B.SFunction1_o8_f4 = L4_MABX_P.XPR3ControlStatus_Y0;
29733
29734 /* SystemInitialize for Outport: '<S611>/XPRErrorState' */
29735 L4_MABX_B.SFunction1_o9_b = L4_MABX_P.XPRErrorState_Y0;
29736
29737 /* SystemInitialize for Outport: '<S611>/XPRControlMode' */
29738 L4_MABX_B.SFunction1_o10_i = L4_MABX_P.XPRControlMode_Y0;
29739
29740 /* SystemInitialize for Outport: '<S611>/RX status' */
29741 L4_MABX_B.SFunction1_o11_l = L4_MABX_P.RXstatus_Y0_en;
29742
29743 /* SystemInitialize for Outport: '<S611>/RX time' */
29744 L4_MABX_B.SFunction1_o12_h = L4_MABX_P.RXtime_Y0_n3;
29745
29746 /* SystemInitialize for Outport: '<S611>/RX delta time' */
29747 L4_MABX_B.SFunction1_o13_l = L4_MABX_P.RXdeltatime_Y0_d;
29748
29749 /* End of SystemInitialize for SubSystem: '<S610>/Bendix_Prop2C2_Status_30' */
29750
29751 /* SystemInitialize for Enabled SubSystem: '<S564>/PropB_REAX_2_13' */
29752 /* SystemInitialize for Outport: '<S566>/PropB_REAX_2_ActualHandwheelPos' */
29753 L4_MABX_B.SFunction1_o1_kx = L4_MABX_P.PropB_REAX_2_ActualHandwheelPos;
29754
29755 /* SystemInitialize for Outport: '<S566>/PropB_REAX_2_EchoedStrWhlPos' */
29756 L4_MABX_B.SFunction1_o2_lv = L4_MABX_P.PropB_REAX_2_EchoedStrWhlPos_Y0;
29757
29758 /* SystemInitialize for Outport: '<S566>/RX status' */
29759 L4_MABX_B.SFunction1_o3_oa = L4_MABX_P.RXstatus_Y0_mu;
29760
29761 /* SystemInitialize for Outport: '<S566>/RX time' */
29762 L4_MABX_B.SFunction1_o4_km = L4_MABX_P.RXtime_Y0_i;
29763
29764 /* SystemInitialize for Outport: '<S566>/RX delta time' */
29765 L4_MABX_B.SFunction1_o5_cm = L4_MABX_P.RXdeltatime_Y0_olr;
29766
29767 /* End of SystemInitialize for SubSystem: '<S564>/PropB_REAX_2_13' */
29768
29769 /* SystemInitialize for Enabled SubSystem: '<S565>/PropB_REAX_2_13' */
29770 /* SystemInitialize for Outport: '<S567>/PropB_REAX_2_ActualHandwheelPos' */
29771 L4_MABX_B.SFunction1_o1_l4 = L4_MABX_P.PropB_REAX_2_ActualHandwheelP_a;
29772
29773 /* SystemInitialize for Outport: '<S567>/PropB_REAX_2_EchoedStrWhlPos' */
29774 L4_MABX_B.SFunction1_o2_gu = L4_MABX_P.PropB_REAX_2_EchoedStrWhlPos__b;
29775
29776 /* SystemInitialize for Outport: '<S567>/RX status' */
29777 L4_MABX_B.SFunction1_o3_a = L4_MABX_P.RXstatus_Y0_hr;
29778
29779 /* SystemInitialize for Outport: '<S567>/RX time' */
29780 L4_MABX_B.SFunction1_o4_gz = L4_MABX_P.RXtime_Y0_fe;
29781
29782 /* SystemInitialize for Outport: '<S567>/RX delta time' */
29783 L4_MABX_B.SFunction1_o5_pk = L4_MABX_P.RXdeltatime_Y0_gh;
29784
29785 /* End of SystemInitialize for SubSystem: '<S565>/PropB_REAX_2_13' */
29786
29787 /* SystemInitialize for Atomic SubSystem: '<S65>/Task_10ms' */
29788 /* InitializeConditions for RateTransition: '<S81>/TmpRTBAtSignal Conversion1Inport1' */
29789 L4_MABX_DW.TmpRTBAtSignalConversion1Inport =
29790 L4_MABX_P.TmpRTBAtSignalConversion1Inport;
29791
29792 /* InitializeConditions for UnitDelay: '<S376>/Unit_Delay' */
29793 L4_MABX_DW.Unit_Delay_DSTATE_cx = L4_MABX_P.Unit_Delay_InitialCondition_b1;
29794
29795 /* InitializeConditions for UnitDelay: '<S377>/Unit_Delay' */
29796 L4_MABX_DW.Unit_Delay_DSTATE_d0 = L4_MABX_P.Unit_Delay_InitialCondition_gz;
29797
29798 /* InitializeConditions for UnitDelay: '<S334>/Unit_Delay' */
29799 L4_MABX_DW.Unit_Delay_DSTATE_e = L4_MABX_P.Unit_Delay_InitialCondition_i;
29800
29801 /* InitializeConditions for UnitDelay: '<S381>/FixPt Unit Delay2' */
29802 L4_MABX_DW.FixPtUnitDelay2_DSTATE_a =
29803 L4_MABX_P.FixPtUnitDelay2_InitialCondi_f5;
29804
29805 /* InitializeConditions for UnitDelay: '<S381>/FixPt Unit Delay1' */
29806 L4_MABX_DW.FixPtUnitDelay1_DSTATE_h =
29807 L4_MABX_P.FixPtUnitDelay1_InitialCondit_l;
29808
29809 /* InitializeConditions for UnitDelay: '<S378>/Unit_Delay' */
29810 L4_MABX_DW.Unit_Delay_DSTATE_m = L4_MABX_P.Unit_Delay_InitialCondition_hae;
29811
29812 /* InitializeConditions for UnitDelay: '<S365>/Unit_Delay' */
29813 L4_MABX_DW.Unit_Delay_DSTATE_iy = L4_MABX_P.Unit_Delay_InitialCondition_aw;
29814
29815 /* InitializeConditions for UnitDelay: '<S366>/Unit_Delay' */
29816 L4_MABX_DW.Unit_Delay_DSTATE_mv = L4_MABX_P.Unit_Delay_InitialCondition_gt;
29817
29818 /* InitializeConditions for UnitDelay: '<S332>/Unit_Delay' */
29819 L4_MABX_DW.Unit_Delay_DSTATE_g = L4_MABX_P.Unit_Delay_InitialCondition_fb;
29820
29821 /* InitializeConditions for UnitDelay: '<S370>/FixPt Unit Delay2' */
29822 L4_MABX_DW.FixPtUnitDelay2_DSTATE_ip =
29823 L4_MABX_P.FixPtUnitDelay2_InitialCondi_po;
29824
29825 /* InitializeConditions for UnitDelay: '<S370>/FixPt Unit Delay1' */
29826 L4_MABX_DW.FixPtUnitDelay1_DSTATE_hq =
29827 L4_MABX_P.FixPtUnitDelay1_InitialCondit_d;
29828
29829 /* InitializeConditions for UnitDelay: '<S367>/Unit_Delay' */
29830 L4_MABX_DW.Unit_Delay_DSTATE_b = L4_MABX_P.Unit_Delay_InitialCondition_c;
29831
29832 /* InitializeConditions for RateTransition: '<S81>/TmpRTBAtSignal Conversion3Inport1' */
29833 L4_MABX_DW.TmpRTBAtSignalConversion3Inport =
29834 L4_MABX_P.TmpRTBAtSignalConversion3Inport;
29835
29836 /* InitializeConditions for RateTransition: '<S81>/TmpRTBAtSignal Conversion2Inport1' */
29837 L4_MABX_DW.TmpRTBAtSignalConversion2Inport =
29838 L4_MABX_P.TmpRTBAtSignalConversion2Inport;
29839
29840 /* InitializeConditions for UnitDelay: '<S347>/Unit_Delay' */
29841 L4_MABX_DW.Unit_Delay_DSTATE_bw = L4_MABX_P.Unit_Delay_InitialCondition_e;
29842
29843 /* InitializeConditions for UnitDelay: '<S349>/Unit_Delay' */
29844 L4_MABX_DW.Unit_Delay_DSTATE_ko = L4_MABX_P.Unit_Delay_InitialCondition_ml;
29845
29846 /* InitializeConditions for UnitDelay: '<S358>/FixPt Unit Delay2' */
29847 L4_MABX_DW.FixPtUnitDelay2_DSTATE_f =
29848 L4_MABX_P.FixPtUnitDelay2_InitialCondit_i;
29849
29850 /* InitializeConditions for UnitDelay: '<S358>/FixPt Unit Delay1' */
29851 L4_MABX_DW.FixPtUnitDelay1_DSTATE_l =
29852 L4_MABX_P.FixPtUnitDelay1_InitialCondit_h;
29853
29854 /* InitializeConditions for UnitDelay: '<S356>/Unit_Delay' */
29855 L4_MABX_DW.Unit_Delay_DSTATE_p = L4_MABX_P.Unit_Delay_InitialCondition_j;
29856
29857 /* InitializeConditions for UnitDelay: '<S329>/Delay Input1' */
29858 L4_MABX_DW.DelayInput1_DSTATE[0] = L4_MABX_P.DetectChange1_vinit;
29859
29860 /* InitializeConditions for UnitDelay: '<S336>/Delay Input1' */
29861 L4_MABX_DW.DelayInput1_DSTATE_f[0] = L4_MABX_P.DetectChange1_vinit_n;
29862
29863 /* InitializeConditions for UnitDelay: '<S329>/Delay Input1' */
29864 L4_MABX_DW.DelayInput1_DSTATE[1] = L4_MABX_P.DetectChange1_vinit;
29865
29866 /* InitializeConditions for UnitDelay: '<S336>/Delay Input1' */
29867 L4_MABX_DW.DelayInput1_DSTATE_f[1] = L4_MABX_P.DetectChange1_vinit_n;
29868
29869 /* InitializeConditions for UnitDelay: '<S338>/Unit_Delay' */
29870 L4_MABX_DW.Unit_Delay_DSTATE_l = L4_MABX_P.Unit_Delay_InitialCondition_ag;
29871
29872 /* InitializeConditions for UnitDelay: '<S342>/FixPt Unit Delay2' */
29873 L4_MABX_DW.FixPtUnitDelay2_DSTATE_cn =
29874 L4_MABX_P.FixPtUnitDelay2_InitialCondi_ck;
29875
29876 /* InitializeConditions for UnitDelay: '<S342>/FixPt Unit Delay1' */
29877 L4_MABX_DW.FixPtUnitDelay1_DSTATE_ej =
29878 L4_MABX_P.FixPtUnitDelay1_InitialCondit_m;
29879
29880 /* InitializeConditions for UnitDelay: '<S337>/Unit_Delay' */
29881 L4_MABX_DW.Unit_Delay_1_DSTATE_j = L4_MABX_P.Unit_Delay_1_InitialCondition;
29882 L4_MABX_DW.Unit_Delay_2_DSTATE_e = L4_MABX_P.Unit_Delay_2_InitialCondition;
29883 L4_MABX_DW.Unit_Delay_3_DSTATE_j = L4_MABX_P.Unit_Delay_3_InitialCondition;
29884
29885 /* InitializeConditions for UnitDelay: '<S335>/Unit_Delay' */
29886 L4_MABX_DW.Unit_Delay_DSTATE_f = L4_MABX_P.Unit_Delay_InitialCondition_e2;
29887
29888 /* InitializeConditions for UnitDelay: '<S101>/Unit_Delay' */
29889 L4_MABX_DW.Unit_Delay_DSTATE_eu4 = L4_MABX_P.Unit_Delay_InitialCondition_ip;
29890
29891 /* InitializeConditions for UnitDelay: '<S197>/Unit_Delay1' */
29892 L4_MABX_DW.Unit_Delay1_DSTATE_d = L4_MABX_P.Unit_Delay1_InitialCondition_f;
29893
29894 /* InitializeConditions for UnitDelay: '<S197>/Unit_Delay2' */
29895 L4_MABX_DW.Unit_Delay2_DSTATE_e = L4_MABX_P.Unit_Delay2_InitialCondition_a;
29896
29897 /* InitializeConditions for UnitDelay: '<S196>/UD' */
29898 L4_MABX_DW.UD_DSTATE = L4_MABX_P.DiscreteDerivative1_ICPrevScale;
29899
29900 /* InitializeConditions for UnitDelay: '<S314>/Unit_Delay1' */
29901 L4_MABX_DW.Unit_Delay1_DSTATE_db = L4_MABX_P.Unit_Delay1_InitialCondition_m;
29902
29903 /* InitializeConditions for UnitDelay: '<S314>/Unit_Delay2' */
29904 L4_MABX_DW.Unit_Delay2_DSTATE_d = L4_MABX_P.Unit_Delay2_InitialCondition_g;
29905
29906 /* InitializeConditions for UnitDelay: '<S313>/Delay Input1' */
29907 L4_MABX_DW.DelayInput1_DSTATE_f0 = L4_MABX_P.DetectChange_vinit;
29908
29909 /* InitializeConditions for UnitDelay: '<S315>/Unit_Delay1' */
29910 L4_MABX_DW.Unit_Delay1_DSTATE_a = L4_MABX_P.Unit_Delay1_InitialCondition_ps;
29911
29912 /* InitializeConditions for UnitDelay: '<S315>/Unit_Delay2' */
29913 L4_MABX_DW.Unit_Delay2_DSTATE_i = L4_MABX_P.Unit_Delay2_InitialCondition_ji;
29914
29915 /* InitializeConditions for UnitDelay: '<S316>/Unit_Delay1' */
29916 L4_MABX_DW.Unit_Delay1_DSTATE_p = L4_MABX_P.Unit_Delay1_InitialCondition_j;
29917
29918 /* InitializeConditions for UnitDelay: '<S316>/Unit_Delay2' */
29919 L4_MABX_DW.Unit_Delay2_DSTATE_p = L4_MABX_P.Unit_Delay2_InitialCondition_ap;
29920
29921 /* InitializeConditions for UnitDelay: '<S278>/Unit Delay' */
29922 L4_MABX_DW.UnitDelay_DSTATE_d = L4_MABX_P.UnitDelay_InitialCondition_c;
29923
29924 /* InitializeConditions for UnitDelay: '<S288>/Unit Delay' */
29925 L4_MABX_DW.UnitDelay_DSTATE_m = L4_MABX_P.UnitDelay_InitialCondition;
29926
29927 /* InitializeConditions for UnitDelay: '<S289>/Unit Delay' */
29928 L4_MABX_DW.UnitDelay_DSTATE_m0 = L4_MABX_P.UnitDelay_InitialCondition_g;
29929
29930 /* InitializeConditions for UnitDelay: '<S289>/Unit Delay1' */
29931 L4_MABX_DW.UnitDelay1_DSTATE_k = L4_MABX_P.UnitDelay1_InitialCondition;
29932
29933 /* InitializeConditions for RateTransition: '<S80>/TmpRTBAtrad2deg1Inport1' */
29934 L4_MABX_DW.TmpRTBAtrad2deg1Inport1_Buffer0 =
29935 L4_MABX_P.TmpRTBAtrad2deg1Inport1_Initial;
29936
29937 /* InitializeConditions for RateTransition: '<S80>/TmpRTBAtsignCurveOffsetInport1' */
29938 L4_MABX_DW.TmpRTBAtsignCurveOffsetInport1_ =
29939 L4_MABX_P.TmpRTBAtsignCurveOffsetInport1_;
29940
29941 /* InitializeConditions for UnitDelay: '<S283>/Unit Delay' */
29942 L4_MABX_DW.UnitDelay_DSTATE_m1 = L4_MABX_P.UnitDelay_InitialCondition_e;
29943
29944 /* InitializeConditions for RateTransition: '<S277>/TmpRTBAtAdd2Inport2' */
29945 L4_MABX_DW.TmpRTBAtAdd2Inport2_Buffer0 =
29946 L4_MABX_P.TmpRTBAtAdd2Inport2_InitialCond;
29947
29948 /* InitializeConditions for RateLimiter: '<S299>/Limit Rate Limiter' */
29949 L4_MABX_DW.PrevY = L4_MABX_P.LimitRateLimiter_IC;
29950
29951 /* InitializeConditions for DiscreteIntegrator: '<S298>/Integrator' */
29952 L4_MABX_DW.Integrator_DSTATE = L4_MABX_P.Integrator_IC;
29953 L4_MABX_DW.Integrator_PrevResetState = 2;
29954
29955 /* InitializeConditions for DiscreteIntegrator: '<S298>/Filter' */
29956 L4_MABX_DW.Filter_DSTATE = L4_MABX_P.Filter_IC;
29957 L4_MABX_DW.Filter_PrevResetState = 2;
29958
29959 /* InitializeConditions for UnitDelay: '<S300>/Delay Input' */
29960 L4_MABX_DW.DelayInput_DSTATE = L4_MABX_P.TransferFcnLeadorLag_ICPrevInpu;
29961
29962 /* InitializeConditions for UnitDelay: '<S300>/Delay Output' */
29963 L4_MABX_DW.DelayOutput_DSTATE = L4_MABX_P.TransferFcnLeadorLag_ICPrevOutp;
29964
29965 /* InitializeConditions for DiscreteTransferFcn: '<S274>/Error 5Hz LPF' */
29966 L4_MABX_DW.Error5HzLPF_states[0] = L4_MABX_P.Error5HzLPF_InitialStates;
29967
29968 /* InitializeConditions for DiscreteTransferFcn: '<S274>/5Hz LPF' */
29969 L4_MABX_DW.uHzLPF_states[0] = L4_MABX_P.uHzLPF_InitialStates;
29970
29971 /* InitializeConditions for DiscreteTransferFcn: '<S274>/Error 5Hz LPF' */
29972 L4_MABX_DW.Error5HzLPF_states[1] = L4_MABX_P.Error5HzLPF_InitialStates;
29973
29974 /* InitializeConditions for DiscreteTransferFcn: '<S274>/5Hz LPF' */
29975 L4_MABX_DW.uHzLPF_states[1] = L4_MABX_P.uHzLPF_InitialStates;
29976
29977 /* InitializeConditions for DiscreteTransferFcn: '<S274>/Error 5Hz LPF' */
29978 L4_MABX_DW.Error5HzLPF_states[2] = L4_MABX_P.Error5HzLPF_InitialStates;
29979
29980 /* InitializeConditions for DiscreteTransferFcn: '<S274>/5Hz LPF' */
29981 L4_MABX_DW.uHzLPF_states[2] = L4_MABX_P.uHzLPF_InitialStates;
29982
29983 /* InitializeConditions for DiscreteIntegrator: '<S292>/Discrete-Time Integrator' */
29984 L4_MABX_DW.DiscreteTimeIntegrator_IC_LOADI = 1U;
29985 L4_MABX_DW.DiscreteTimeIntegrator_PrevRese = 2;
29986
29987 /* InitializeConditions for UnitDelay: '<S308>/Delay Input2' */
29988 L4_MABX_DW.DelayInput2_DSTATE = L4_MABX_P.DelayInput2_InitialCondition;
29989
29990 /* InitializeConditions for DiscreteIntegrator: '<S80>/Discrete-Time Integrator' */
29991 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
29992 L4_MABX_P.DiscreteTimeIntegrator_IC;
29993 L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e = 0;
29994
29995 /* InitializeConditions for UnitDelay: '<S80>/Unit Delay' */
29996 L4_MABX_DW.UnitDelay_DSTATE_e = L4_MABX_P.UnitDelay_InitialCondition_g1;
29997
29998 /* InitializeConditions for UnitDelay: '<S360>/FixPt Unit Delay2' */
29999 L4_MABX_DW.FixPtUnitDelay2_DSTATE_aw =
30000 L4_MABX_P.FixPtUnitDelay2_InitialCondit_g;
30001
30002 /* InitializeConditions for UnitDelay: '<S360>/FixPt Unit Delay1' */
30003 L4_MABX_DW.FixPtUnitDelay1_DSTATE_pe =
30004 L4_MABX_P.FixPtUnitDelay1_InitialCondi_dl;
30005
30006 /* InitializeConditions for UnitDelay: '<S361>/FixPt Unit Delay2' */
30007 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gx =
30008 L4_MABX_P.FixPtUnitDelay2_InitialCondi_pz;
30009
30010 /* InitializeConditions for UnitDelay: '<S361>/FixPt Unit Delay1' */
30011 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g0 =
30012 L4_MABX_P.FixPtUnitDelay1_InitialCondi_ol;
30013
30014 /* InitializeConditions for UnitDelay: '<S355>/Unit_Delay' */
30015 L4_MABX_DW.Unit_Delay_DSTATE_j = L4_MABX_P.Unit_Delay_InitialCondition_b;
30016
30017 /* SystemInitialize for Enabled SubSystem: '<S79>/Throttle_controller_gov' */
30018 /* InitializeConditions for UnitDelay: '<S214>/Unit_Delay1' */
30019 L4_MABX_DW.Unit_Delay1_DSTATE_p1 = L4_MABX_P.Unit_Delay1_InitialCondition_o;
30020
30021 /* InitializeConditions for UnitDelay: '<S214>/Unit_Delay' */
30022 L4_MABX_DW.Unit_Delay_DSTATE_lq = L4_MABX_P.Unit_Delay_InitialCondition_b2;
30023
30024 /* InitializeConditions for UnitDelay: '<S241>/Unit_Delay' */
30025 L4_MABX_DW.Unit_Delay_DSTATE_be = L4_MABX_P.Unit_Delay_InitialCondition_lj;
30026
30027 /* InitializeConditions for UnitDelay: '<S261>/Unit_Delay1' */
30028 L4_MABX_DW.Unit_Delay1_DSTATE_h = L4_MABX_P.Unit_Delay1_InitialCondition_a;
30029
30030 /* InitializeConditions for UnitDelay: '<S262>/Unit_Delay' */
30031 L4_MABX_DW.Unit_Delay_DSTATE_fi = L4_MABX_P.Unit_Delay_InitialCondition_bm;
30032
30033 /* InitializeConditions for UnitDelay: '<S266>/FixPt Unit Delay2' */
30034 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gq =
30035 L4_MABX_P.FixPtUnitDelay2_InitialCondit_a;
30036
30037 /* InitializeConditions for UnitDelay: '<S266>/FixPt Unit Delay1' */
30038 L4_MABX_DW.FixPtUnitDelay1_DSTATE_a =
30039 L4_MABX_P.FixPtUnitDelay1_InitialCondit_o;
30040
30041 /* InitializeConditions for UnitDelay: '<S261>/Unit_Delay2' */
30042 L4_MABX_DW.Unit_Delay2_DSTATE_m = L4_MABX_P.Unit_Delay2_InitialCondition_j;
30043
30044 /* InitializeConditions for UnitDelay: '<S216>/Unit_Delay' */
30045 L4_MABX_DW.Unit_Delay_DSTATE_fz = L4_MABX_P.Unit_Delay_InitialCondition_kg;
30046
30047 /* SystemInitialize for Enabled SubSystem: '<S238>/Calculate_D_term' */
30048 L4_MA_Calculate_D_term_Init(&L4_MABX_B.Calculate_D_term_h,
30049 &L4_MABX_DW.Calculate_D_term_h, &L4_MABX_P.Calculate_D_term_h);
30050
30051 /* End of SystemInitialize for SubSystem: '<S238>/Calculate_D_term' */
30052
30053 /* SystemInitialize for Enabled SubSystem: '<S238>/Calculate_I_term' */
30054 L4_MA_Calculate_I_term_Init(&L4_MABX_B.Calculate_I_term_n,
30055 &L4_MABX_DW.Calculate_I_term_n, &L4_MABX_P.Calculate_I_term_n);
30056
30057 /* End of SystemInitialize for SubSystem: '<S238>/Calculate_I_term' */
30058
30059 /* SystemInitialize for Outport: '<S206>/PID_output' */
30060 L4_MABX_B.If_Then_Else_pi.Switch = L4_MABX_P.PID_output_Y0_c;
30061
30062 /* SystemInitialize for Outport: '<S206>/PID_output_unlim' */
30063 L4_MABX_B.Add_ds = L4_MABX_P.PID_output_unlim_Y0;
30064
30065 /* SystemInitialize for Outport: '<S206>/PID_control_error' */
30066 L4_MABX_B.If_Then_Else_k.Switch = L4_MABX_P.PID_control_error_Y0;
30067
30068 /* SystemInitialize for Outport: '<S206>/PID_p_term' */
30069 L4_MABX_B.Product_i = L4_MABX_P.PID_p_term_Y0;
30070
30071 /* SystemInitialize for Outport: '<S206>/PID_i_term' */
30072 L4_MABX_B.PID_i_term_c = L4_MABX_P.PID_i_term_Y0;
30073
30074 /* SystemInitialize for Outport: '<S206>/PID_d_term' */
30075 L4_MABX_B.PID_d_term_c = L4_MABX_P.PID_d_term_Y0;
30076
30077 /* SystemInitialize for Outport: '<S206>/PID_hold_i_term_f' */
30078 L4_MABX_B.PID_hold_i_term_f_b = L4_MABX_P.PID_hold_i_term_f_Y0;
30079
30080 /* End of SystemInitialize for SubSystem: '<S79>/Throttle_controller_gov' */
30081
30082 /* SystemInitialize for Enabled SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' */
30083 /* InitializeConditions for UnitDelay: '<S178>/Unit_Delay' */
30084 L4_MABX_DW.Unit_Delay_DSTATE_obz = L4_MABX_P.Unit_Delay_InitialCondition_l;
30085
30086 /* InitializeConditions for UnitDelay: '<S188>/Unit_Delay' */
30087 L4_MABX_DW.Unit_Delay_DSTATE_a = L4_MABX_P.Unit_Delay_InitialCondition_cl;
30088
30089 /* InitializeConditions for UnitDelay: '<S192>/FixPt Unit Delay2' */
30090 L4_MABX_DW.FixPtUnitDelay2_DSTATE_l =
30091 L4_MABX_P.FixPtUnitDelay2_InitialCondit_f;
30092
30093 /* InitializeConditions for UnitDelay: '<S192>/FixPt Unit Delay1' */
30094 L4_MABX_DW.FixPtUnitDelay1_DSTATE_d =
30095 L4_MABX_P.FixPtUnitDelay1_InitialCondit_j;
30096
30097 /* InitializeConditions for UnitDelay: '<S189>/Unit_Delay' */
30098 L4_MABX_DW.Unit_Delay_DSTATE_om = L4_MABX_P.Unit_Delay_InitialCondition_ha;
30099
30100 /* SystemInitialize for Outport: '<S178>/Shift_interlock_brake_press_target_kpa' */
30101 L4_MABX_B.If_Then_Else_il.Switch = L4_MABX_P.Shift_interlock_brake_press_tar;
30102
30103 /* SystemInitialize for Outport: '<S178>/F_Shift_interlock_conditions_met' */
30104 L4_MABX_B.F_Shift_interlock_conditions_me =
30105 L4_MABX_P.F_Shift_interlock_conditions_me;
30106
30107 /* End of SystemInitialize for SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' */
30108
30109 /* SystemInitialize for Enabled SubSystem: '<S99>/Determine_brake_hold_pressure_target' */
30110 /* InitializeConditions for UnitDelay: '<S177>/Unit_Delay' */
30111 L4_MABX_DW.Unit_Delay_DSTATE_c = L4_MABX_P.Unit_Delay_InitialCondition_d;
30112
30113 /* InitializeConditions for UnitDelay: '<S181>/Unit_Delay' */
30114 L4_MABX_DW.Unit_Delay_DSTATE_or = L4_MABX_P.Unit_Delay_InitialCondition_fy;
30115
30116 /* InitializeConditions for UnitDelay: '<S185>/FixPt Unit Delay2' */
30117 L4_MABX_DW.FixPtUnitDelay2_DSTATE_je =
30118 L4_MABX_P.FixPtUnitDelay2_InitialCondit_e;
30119
30120 /* InitializeConditions for UnitDelay: '<S185>/FixPt Unit Delay1' */
30121 L4_MABX_DW.FixPtUnitDelay1_DSTATE_b0 =
30122 L4_MABX_P.FixPtUnitDelay1_InitialCondit_p;
30123
30124 /* InitializeConditions for UnitDelay: '<S182>/Unit_Delay' */
30125 L4_MABX_DW.Unit_Delay_DSTATE_oj = L4_MABX_P.Unit_Delay_InitialCondition_k;
30126
30127 /* SystemInitialize for Outport: '<S177>/Brake_hold_brake_press_target_kpa' */
30128 L4_MABX_B.If_Then_Else_gj.Switch = L4_MABX_P.Brake_hold_brake_press_target_k;
30129
30130 /* SystemInitialize for Outport: '<S177>/F_Brake_hold_conditions_met' */
30131 L4_MABX_B.F_Brake_hold_conditions_met =
30132 L4_MABX_P.F_Brake_hold_conditions_met_Y0;
30133
30134 /* End of SystemInitialize for SubSystem: '<S99>/Determine_brake_hold_pressure_target' */
30135
30136 /* SystemInitialize for Enabled SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
30137 /* InitializeConditions for UnitDelay: '<S105>/Unit_Delay' */
30138 L4_MABX_DW.Unit_Delay_DSTATE_d = L4_MABX_P.Unit_Delay_InitialCondition;
30139
30140 /* InitializeConditions for UnitDelay: '<S109>/Unit_Delay' */
30141 L4_MABX_DW.Unit_Delay_DSTATE_omj = L4_MABX_P.Unit_Delay_InitialCondition_lt;
30142
30143 /* InitializeConditions for UnitDelay: '<S129>/Unit_Delay1' */
30144 L4_MABX_DW.Unit_Delay1_DSTATE_b = L4_MABX_P.Unit_Delay1_InitialCondition;
30145
30146 /* InitializeConditions for UnitDelay: '<S130>/Unit_Delay' */
30147 L4_MABX_DW.Unit_Delay_DSTATE_h4 = L4_MABX_P.Unit_Delay_InitialCondition_og;
30148
30149 /* InitializeConditions for UnitDelay: '<S134>/FixPt Unit Delay2' */
30150 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gm =
30151 L4_MABX_P.FixPtUnitDelay2_InitialConditio;
30152
30153 /* InitializeConditions for UnitDelay: '<S134>/FixPt Unit Delay1' */
30154 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g1 =
30155 L4_MABX_P.FixPtUnitDelay1_InitialConditio;
30156
30157 /* InitializeConditions for UnitDelay: '<S129>/Unit_Delay2' */
30158 L4_MABX_DW.Unit_Delay2_DSTATE_dy = L4_MABX_P.Unit_Delay2_InitialCondition;
30159
30160 /* InitializeConditions for UnitDelay: '<S104>/Unit_Delay' */
30161 L4_MABX_DW.Unit_Delay_DSTATE_i = L4_MABX_P.Unit_Delay_InitialCondition_p;
30162
30163 /* SystemInitialize for Enabled SubSystem: '<S106>/Calculate_D_term' */
30164 L4_MA_Calculate_D_term_Init(&L4_MABX_B.Calculate_D_term,
30165 &L4_MABX_DW.Calculate_D_term, &L4_MABX_P.Calculate_D_term);
30166
30167 /* End of SystemInitialize for SubSystem: '<S106>/Calculate_D_term' */
30168
30169 /* SystemInitialize for Enabled SubSystem: '<S106>/Calculate_I_term' */
30170 L4_MA_Calculate_I_term_Init(&L4_MABX_B.Calculate_I_term,
30171 &L4_MABX_DW.Calculate_I_term, &L4_MABX_P.Calculate_I_term);
30172
30173 /* End of SystemInitialize for SubSystem: '<S106>/Calculate_I_term' */
30174
30175 /* SystemInitialize for Outport: '<S96>/PID_output' */
30176 L4_MABX_B.If_Then_Else_nj.Switch = L4_MABX_P.PID_output_Y0;
30177
30178 /* End of SystemInitialize for SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
30179
30180 /* SystemInitialize for Chart: '<S331>/VehicleSpeedSetpointDynamicCalculation' */
30181 L4_MABX_B.TimeVectorRaw[0] = 0.0;
30182 L4_MABX_B.TimeVectorRaw[1] = 0.001;
30183 L4_MABX_B.TimeVectorRaw[2] = 0.002;
30184 L4_MABX_B.TimeVectorRaw[3] = 0.003;
30185 L4_MABX_B.TimeVectorRaw[4] = 0.004;
30186 L4_MABX_B.TimeVectorRaw[5] = 0.005;
30187 L4_MABX_B.PositionVectorRaw[0] = 0.0;
30188 L4_MABX_B.PositionVectorRaw[1] = 0.001;
30189 L4_MABX_B.PositionVectorRaw[2] = 0.002;
30190 L4_MABX_B.PositionVectorRaw[3] = 0.003;
30191 L4_MABX_B.PositionVectorRaw[4] = 0.004;
30192 L4_MABX_B.PositionVectorRaw[5] = 0.005;
30193 for (i = 0; i < 6; i++) {
30194 L4_MABX_B.VelocityVectorRaw[i] = 0.0;
30195 L4_MABX_B.AccelerationVectorRaw[i] = 0.0;
30196 L4_MABX_B.JerkVectorRaw[i] = 0.0;
30197 }
30198
30199 /* End of SystemInitialize for Chart: '<S331>/VehicleSpeedSetpointDynamicCalculation' */
30200
30201 /* SystemInitialize for Chart: '<S331>/TwentyPointVectorCalculation' */
30202 L4_MABX_B.TimeVector[0] = 0.0;
30203 L4_MABX_B.TimeVector[1] = 0.001;
30204 L4_MABX_B.TimeVector[2] = 0.002;
30205 L4_MABX_B.TimeVector[3] = 0.003;
30206 L4_MABX_B.TimeVector[4] = 0.004;
30207 L4_MABX_B.TimeVector[5] = 0.005;
30208 L4_MABX_B.TimeVector[6] = 0.006;
30209 L4_MABX_B.TimeVector[7] = 0.007;
30210 L4_MABX_B.TimeVector[8] = 0.008;
30211 L4_MABX_B.TimeVector[9] = 0.0090000000000000011;
30212 L4_MABX_B.TimeVector[10] = 0.01;
30213 L4_MABX_B.TimeVector[11] = 0.011;
30214 L4_MABX_B.TimeVector[12] = 0.012;
30215 L4_MABX_B.TimeVector[13] = 0.013000000000000001;
30216 L4_MABX_B.TimeVector[14] = 0.014;
30217 L4_MABX_B.TimeVector[15] = 0.015;
30218 L4_MABX_B.TimeVector[16] = 0.016;
30219 L4_MABX_B.TimeVector[17] = 0.017;
30220 L4_MABX_B.TimeVector[18] = 0.018000000000000002;
30221 L4_MABX_B.TimeVector[19] = 0.019;
30222 L4_MABX_B.TimeVector[20] = 0.02;
30223 L4_MABX_B.TimeVector[21] = 0.021;
30224 L4_MABX_B.TimeVector[22] = 0.022;
30225 L4_MABX_B.TimeVector[23] = 0.023;
30226 L4_MABX_B.TimeVector[24] = 0.024;
30227 L4_MABX_B.TimeVector[25] = 0.025;
30228 L4_MABX_B.TimeVector[26] = 0.026000000000000002;
30229 L4_MABX_B.TimeVector[27] = 0.027;
30230 L4_MABX_B.TimeVector[28] = 0.028;
30231 L4_MABX_B.TimeVector[29] = 0.029;
30232 L4_MABX_B.TimeVector[30] = 0.03;
30233 L4_MABX_B.TimeVector[31] = 0.031;
30234 L4_MABX_B.TimeVector[32] = 0.032;
30235 L4_MABX_B.PositionVector[0] = 0.0;
30236 L4_MABX_B.PositionVector[1] = 0.001;
30237 L4_MABX_B.PositionVector[2] = 0.002;
30238 L4_MABX_B.PositionVector[3] = 0.003;
30239 L4_MABX_B.PositionVector[4] = 0.004;
30240 L4_MABX_B.PositionVector[5] = 0.005;
30241 L4_MABX_B.PositionVector[6] = 0.006;
30242 L4_MABX_B.PositionVector[7] = 0.007;
30243 L4_MABX_B.PositionVector[8] = 0.008;
30244 L4_MABX_B.PositionVector[9] = 0.0090000000000000011;
30245 L4_MABX_B.PositionVector[10] = 0.01;
30246 L4_MABX_B.PositionVector[11] = 0.011;
30247 L4_MABX_B.PositionVector[12] = 0.012;
30248 L4_MABX_B.PositionVector[13] = 0.013000000000000001;
30249 L4_MABX_B.PositionVector[14] = 0.014;
30250 L4_MABX_B.PositionVector[15] = 0.015;
30251 L4_MABX_B.PositionVector[16] = 0.016;
30252 L4_MABX_B.PositionVector[17] = 0.017;
30253 L4_MABX_B.PositionVector[18] = 0.018000000000000002;
30254 L4_MABX_B.PositionVector[19] = 0.019;
30255 L4_MABX_B.PositionVector[20] = 0.02;
30256 L4_MABX_B.PositionVector[21] = 0.021;
30257 L4_MABX_B.PositionVector[22] = 0.022;
30258 L4_MABX_B.PositionVector[23] = 0.023;
30259 L4_MABX_B.PositionVector[24] = 0.024;
30260 L4_MABX_B.PositionVector[25] = 0.025;
30261 L4_MABX_B.PositionVector[26] = 0.026000000000000002;
30262 L4_MABX_B.PositionVector[27] = 0.027;
30263 L4_MABX_B.PositionVector[28] = 0.028;
30264 L4_MABX_B.PositionVector[29] = 0.029;
30265 L4_MABX_B.PositionVector[30] = 0.03;
30266 L4_MABX_B.PositionVector[31] = 0.031;
30267 L4_MABX_B.PositionVector[32] = 0.032;
30268 memset(&L4_MABX_B.VelocityVector[0], 0, 33U * sizeof(real_T));
30269 memset(&L4_MABX_B.AccelerationVector[0], 0, 33U * sizeof(real_T));
30270 memset(&L4_MABX_B.JerkVector[0], 0, 33U * sizeof(real_T));
30271
30272 /* SystemInitialize for Enabled SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
30273 /* InitializeConditions for UnitDelay: '<S140>/Unit_Delay' */
30274 L4_MABX_DW.Unit_Delay_DSTATE_eu = L4_MABX_P.Unit_Delay_InitialCondition_f;
30275
30276 /* InitializeConditions for UnitDelay: '<S147>/Unit_Delay' */
30277 L4_MABX_DW.Unit_Delay_DSTATE_n = L4_MABX_P.Unit_Delay_InitialCondition_jb;
30278
30279 /* InitializeConditions for UnitDelay: '<S167>/Unit_Delay1' */
30280 L4_MABX_DW.Unit_Delay1_DSTATE_f = L4_MABX_P.Unit_Delay1_InitialCondition_p;
30281
30282 /* InitializeConditions for UnitDelay: '<S168>/Unit_Delay' */
30283 L4_MABX_DW.Unit_Delay_DSTATE_g4 = L4_MABX_P.Unit_Delay_InitialCondition_lq;
30284
30285 /* InitializeConditions for UnitDelay: '<S172>/FixPt Unit Delay2' */
30286 L4_MABX_DW.FixPtUnitDelay2_DSTATE_o =
30287 L4_MABX_P.FixPtUnitDelay2_InitialCondit_p;
30288
30289 /* InitializeConditions for UnitDelay: '<S172>/FixPt Unit Delay1' */
30290 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g2 =
30291 L4_MABX_P.FixPtUnitDelay1_InitialCondit_b;
30292
30293 /* InitializeConditions for UnitDelay: '<S167>/Unit_Delay2' */
30294 L4_MABX_DW.Unit_Delay2_DSTATE_c = L4_MABX_P.Unit_Delay2_InitialCondition_b;
30295
30296 /* InitializeConditions for UnitDelay: '<S139>/Unit_Delay' */
30297 L4_MABX_DW.Unit_Delay_DSTATE_h = L4_MABX_P.Unit_Delay_InitialCondition_h;
30298
30299 /* SystemInitialize for Enabled SubSystem: '<S144>/Calculate_D_term' */
30300 L4_MA_Calculate_D_term_Init(&L4_MABX_B.Calculate_D_term_p,
30301 &L4_MABX_DW.Calculate_D_term_p, &L4_MABX_P.Calculate_D_term_p);
30302
30303 /* End of SystemInitialize for SubSystem: '<S144>/Calculate_D_term' */
30304
30305 /* SystemInitialize for Enabled SubSystem: '<S144>/Calculate_I_term' */
30306 L4_MA_Calculate_I_term_Init(&L4_MABX_B.Calculate_I_term_e,
30307 &L4_MABX_DW.Calculate_I_term_e, &L4_MABX_P.Calculate_I_term_e);
30308
30309 /* End of SystemInitialize for SubSystem: '<S144>/Calculate_I_term' */
30310
30311 /* SystemInitialize for Outport: '<S97>/PID_output' */
30312 L4_MABX_B.If_Then_Else_fo.Switch = L4_MABX_P.PID_output_Y0_p;
30313
30314 /* End of SystemInitialize for SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
30315
30316 /* SystemInitialize for Chart: '<S79>/Chart' */
30317 L4_MABX_DW.is_active_c19_SUB_L4_Task_10ms_ = 0U;
30318 L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA = L4_MABX_IN_NO_ACTIVE_CHILD;
30319 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_NOT_AVAILABLE;
30320 L4_MABX_B.VehCtrlState = ENUM_AUTO_CTRL_VEHICLE_STATE_T_NOT_AVAILABLE;
30321
30322 /* SystemInitialize for Enabled SubSystem: '<S79>/Engine_speed_target' */
30323 /* SystemInitialize for Outport: '<S204>/Out1' */
30324 L4_MABX_B.MinMax1_n = L4_MABX_P.Out1_Y0;
30325
30326 /* End of SystemInitialize for SubSystem: '<S79>/Engine_speed_target' */
30327
30328 /* SystemInitialize for Chart: '<S205>/Relay_control_state_machine' */
30329 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_NO_ACTIVE_CHILD;
30330 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_NO_ACTIVE_CHILD;
30331 L4_MABX_DW.temporalCounter_i1 = 0U;
30332 L4_MABX_DW.is_active_c6_SUB_L4_Task_10ms_S = 0U;
30333 L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT = L4_MABX_IN_NO_ACTIVE_CHILD;
30334
30335 /* SystemInitialize for Chart: '<S276>/Chart' */
30336 L4_MABX_DW.is_active_c12_SUB_L4_Task_10ms_ = 0U;
30337 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_NO_ACTIVE_CHILD;
30338
30339 /* SystemInitialize for Enabled SubSystem: '<S276>/Slew_at_event' */
30340 /* InitializeConditions for UnitDelay: '<S323>/Unit_Delay' */
30341 L4_MABX_DW.Unit_Delay_DSTATE_bd = L4_MABX_P.Unit_Delay_InitialCondition_ls;
30342
30343 /* InitializeConditions for UnitDelay: '<S324>/Unit_Delay' */
30344 L4_MABX_DW.Unit_Delay_DSTATE_jt = L4_MABX_P.Unit_Delay_InitialCondition_i0;
30345
30346 /* InitializeConditions for UnitDelay: '<S327>/FixPt Unit Delay2' */
30347 L4_MABX_DW.FixPtUnitDelay2_DSTATE_j =
30348 L4_MABX_P.FixPtUnitDelay2_InitialCondit_c;
30349
30350 /* InitializeConditions for UnitDelay: '<S327>/FixPt Unit Delay1' */
30351 L4_MABX_DW.FixPtUnitDelay1_DSTATE_o =
30352 L4_MABX_P.FixPtUnitDelay1_InitialCondit_f;
30353
30354 /* InitializeConditions for UnitDelay: '<S322>/Unit_Delay' */
30355 L4_MABX_DW.Unit_Delay_DSTATE_ll = L4_MABX_P.Unit_Delay_InitialCondition_ld;
30356
30357 /* SystemInitialize for Outport: '<S321>/F_Out_slewing' */
30358 L4_MABX_B.LogicalOperator_dm = L4_MABX_P.F_Out_slewing_Y0;
30359
30360 /* SystemInitialize for Outport: '<S321>/Out' */
30361 L4_MABX_B.If_Then_Else_n3.Switch = L4_MABX_P.Out_Y0;
30362
30363 /* End of SystemInitialize for SubSystem: '<S276>/Slew_at_event' */
30364 /* End of SystemInitialize for SubSystem: '<S65>/Task_10ms' */
30365
30366 /* SystemInitialize for Enabled SubSystem: '<S607>/PosRapidUpdate_011' */
30367 /* SystemInitialize for Outport: '<S608>/Latitude_' */
30368 L4_MABX_B.SFunction1_o1_on = L4_MABX_P.Latitude_Y0;
30369
30370 /* SystemInitialize for Outport: '<S608>/Longitude_' */
30371 L4_MABX_B.SFunction1_o2_or = L4_MABX_P.Longitude_Y0;
30372
30373 /* SystemInitialize for Outport: '<S608>/RX status' */
30374 L4_MABX_B.SFunction1_o3_e = L4_MABX_P.RXstatus_Y0_ic;
30375
30376 /* SystemInitialize for Outport: '<S608>/RX time' */
30377 L4_MABX_B.SFunction1_o4_mw = L4_MABX_P.RXtime_Y0_ct;
30378
30379 /* SystemInitialize for Outport: '<S608>/RX delta time' */
30380 L4_MABX_B.SFunction1_o5_k = L4_MABX_P.RXdeltatime_Y0_h3d;
30381
30382 /* End of SystemInitialize for SubSystem: '<S607>/PosRapidUpdate_011' */
30383
30384 /* SystemInitialize for Enabled SubSystem: '<S607>/PosRapidUpdate_1' */
30385 /* SystemInitialize for Outport: '<S609>/Latitude_' */
30386 L4_MABX_B.SFunction1_o1_ck = L4_MABX_P.Latitude_Y0_a;
30387
30388 /* SystemInitialize for Outport: '<S609>/Longitude_' */
30389 L4_MABX_B.SFunction1_o2_dn = L4_MABX_P.Longitude_Y0_m;
30390
30391 /* SystemInitialize for Outport: '<S609>/RX status' */
30392 L4_MABX_B.SFunction1_o3_gm = L4_MABX_P.RXstatus_Y0_ce;
30393
30394 /* SystemInitialize for Outport: '<S609>/RX time' */
30395 L4_MABX_B.SFunction1_o4_hc = L4_MABX_P.RXtime_Y0_o;
30396
30397 /* SystemInitialize for Outport: '<S609>/RX delta time' */
30398 L4_MABX_B.SFunction1_o5_ib = L4_MABX_P.RXdeltatime_Y0_kr;
30399
30400 /* End of SystemInitialize for SubSystem: '<S607>/PosRapidUpdate_1' */
30401
30402 /* SystemInitialize for Enabled SubSystem: '<S491>/CCVS1_00' */
30403 /* SystemInitialize for Outport: '<S492>/TwoSpeedAxleSwitch' */
30404 L4_MABX_B.SFunction1_o1_kc = L4_MABX_P.TwoSpeedAxleSwitch_Y0;
30405
30406 /* SystemInitialize for Outport: '<S492>/ParkingBrakeSwitch' */
30407 L4_MABX_B.SFunction1_o2_cc = L4_MABX_P.ParkingBrakeSwitch_Y0;
30408
30409 /* SystemInitialize for Outport: '<S492>/CruiseCtrlPauseSwitch' */
30410 L4_MABX_B.SFunction1_o3_bu = L4_MABX_P.CruiseCtrlPauseSwitch_Y0;
30411
30412 /* SystemInitialize for Outport: '<S492>/ParkBrakeReleaseInhibitRq' */
30413 L4_MABX_B.SFunction1_o4_ku = L4_MABX_P.ParkBrakeReleaseInhibitRq_Y0;
30414
30415 /* SystemInitialize for Outport: '<S492>/WheelBasedVehicleSpeed' */
30416 WheelBasedVehicleSpeed = L4_MABX_P.WheelBasedVehicleSpeed_Y0;
30417
30418 /* SystemInitialize for Outport: '<S492>/CruiseCtrlActive' */
30419 L4_MABX_B.SFunction1_o6_dq = L4_MABX_P.CruiseCtrlActive_Y0;
30420
30421 /* SystemInitialize for Outport: '<S492>/CruiseCtrlEnableSwitch' */
30422 L4_MABX_B.SFunction1_o7_kr = L4_MABX_P.CruiseCtrlEnableSwitch_Y0;
30423
30424 /* SystemInitialize for Outport: '<S492>/BrakeSwitch' */
30425 BrakeSwitch = L4_MABX_P.BrakeSwitch_Y0;
30426
30427 /* SystemInitialize for Outport: '<S492>/ClutchSwitch' */
30428 L4_MABX_B.SFunction1_o9_a = L4_MABX_P.ClutchSwitch_Y0;
30429
30430 /* SystemInitialize for Outport: '<S492>/CruiseCtrlSetSwitch' */
30431 L4_MABX_B.SFunction1_o10_eg = L4_MABX_P.CruiseCtrlSetSwitch_Y0;
30432
30433 /* SystemInitialize for Outport: '<S492>/CruiseCtrlCoastSwitch' */
30434 L4_MABX_B.SFunction1_o11_d = L4_MABX_P.CruiseCtrlCoastSwitch_Y0;
30435
30436 /* SystemInitialize for Outport: '<S492>/CruiseCtrlResumeSwitch' */
30437 L4_MABX_B.SFunction1_o12_d = L4_MABX_P.CruiseCtrlResumeSwitch_Y0;
30438
30439 /* SystemInitialize for Outport: '<S492>/CruiseCtrlAccelerateSwitch' */
30440 L4_MABX_B.SFunction1_o13_fk = L4_MABX_P.CruiseCtrlAccelerateSwitch_Y0;
30441
30442 /* SystemInitialize for Outport: '<S492>/CruiseCtrlSetSpeed' */
30443 L4_MABX_B.SFunction1_o14_m = L4_MABX_P.CruiseCtrlSetSpeed_Y0;
30444
30445 /* SystemInitialize for Outport: '<S492>/PTOGovernorState' */
30446 L4_MABX_B.SFunction1_o15_p = L4_MABX_P.PTOGovernorState_Y0;
30447
30448 /* SystemInitialize for Outport: '<S492>/CruiseCtrlStates' */
30449 L4_MABX_B.SFunction1_o16_c = L4_MABX_P.CruiseCtrlStates_Y0;
30450
30451 /* SystemInitialize for Outport: '<S492>/EngIdleIncrementSwitch' */
30452 L4_MABX_B.SFunction1_o17_b = L4_MABX_P.EngIdleIncrementSwitch_Y0;
30453
30454 /* SystemInitialize for Outport: '<S492>/EngIdleDecrementSwitch' */
30455 L4_MABX_B.SFunction1_o18_d = L4_MABX_P.EngIdleDecrementSwitch_Y0;
30456
30457 /* SystemInitialize for Outport: '<S492>/EngTestModeSwitch' */
30458 L4_MABX_B.SFunction1_o19_c = L4_MABX_P.EngTestModeSwitch_Y0;
30459
30460 /* SystemInitialize for Outport: '<S492>/EngShutdownOverrideSwitch' */
30461 L4_MABX_B.SFunction1_o20_o = L4_MABX_P.EngShutdownOverrideSwitch_Y0;
30462
30463 /* SystemInitialize for Outport: '<S492>/RX status' */
30464 L4_MABX_B.SFunction1_o21_a = L4_MABX_P.RXstatus_Y0_c;
30465
30466 /* SystemInitialize for Outport: '<S492>/RX time' */
30467 L4_MABX_B.SFunction1_o22_f = L4_MABX_P.RXtime_Y0_h;
30468
30469 /* SystemInitialize for Outport: '<S492>/RX delta time' */
30470 L4_MABX_B.SFunction1_o23_j = L4_MABX_P.RXdeltatime_Y0_f;
30471
30472 /* End of SystemInitialize for SubSystem: '<S491>/CCVS1_00' */
30473
30474 /* SystemInitialize for Enabled SubSystem: '<S495>/COGSOGRapidUpdate_00' */
30475 /* SystemInitialize for Outport: '<S496>/SID' */
30476 L4_MABX_B.SFunction1_o1_nr = L4_MABX_P.SID_Y0;
30477
30478 /* SystemInitialize for Outport: '<S496>/COGReference' */
30479 L4_MABX_B.SFunction1_o2_j5 = L4_MABX_P.COGReference_Y0;
30480
30481 /* SystemInitialize for Outport: '<S496>/CourseOverGround' */
30482 L4_MABX_B.SFunction1_o3_no = L4_MABX_P.CourseOverGround_Y0;
30483
30484 /* SystemInitialize for Outport: '<S496>/SpeedOverGround' */
30485 L4_MABX_B.SFunction1_o4_dm = L4_MABX_P.SpeedOverGround_Y0;
30486
30487 /* SystemInitialize for Outport: '<S496>/RX status' */
30488 L4_MABX_B.SFunction1_o5_p0 = L4_MABX_P.RXstatus_Y0_py;
30489
30490 /* SystemInitialize for Outport: '<S496>/RX time' */
30491 L4_MABX_B.SFunction1_o6_jb = L4_MABX_P.RXtime_Y0_m;
30492
30493 /* SystemInitialize for Outport: '<S496>/RX delta time' */
30494 L4_MABX_B.SFunction1_o7_k = L4_MABX_P.RXdeltatime_Y0_n;
30495
30496 /* End of SystemInitialize for SubSystem: '<S495>/COGSOGRapidUpdate_00' */
30497
30498 /* SystemInitialize for Enabled SubSystem: '<S495>/COGSOGRapidUpdate_1' */
30499 /* SystemInitialize for Outport: '<S497>/SID' */
30500 L4_MABX_B.SFunction1_o1_az = L4_MABX_P.SID_Y0_o;
30501
30502 /* SystemInitialize for Outport: '<S497>/COGReference' */
30503 L4_MABX_B.SFunction1_o2_ftn = L4_MABX_P.COGReference_Y0_e;
30504
30505 /* SystemInitialize for Outport: '<S497>/CourseOverGround' */
30506 L4_MABX_B.SFunction1_o3_gj = L4_MABX_P.CourseOverGround_Y0_l;
30507
30508 /* SystemInitialize for Outport: '<S497>/SpeedOverGround' */
30509 L4_MABX_B.SFunction1_o4_jh = L4_MABX_P.SpeedOverGround_Y0_o;
30510
30511 /* SystemInitialize for Outport: '<S497>/RX status' */
30512 L4_MABX_B.SFunction1_o5_i2 = L4_MABX_P.RXstatus_Y0_g;
30513
30514 /* SystemInitialize for Outport: '<S497>/RX time' */
30515 L4_MABX_B.SFunction1_o6_pz = L4_MABX_P.RXtime_Y0_bv;
30516
30517 /* SystemInitialize for Outport: '<S497>/RX delta time' */
30518 L4_MABX_B.SFunction1_o7_dq = L4_MABX_P.RXdeltatime_Y0_hg;
30519
30520 /* End of SystemInitialize for SubSystem: '<S495>/COGSOGRapidUpdate_1' */
30521
30522 /* SystemInitialize for Atomic SubSystem: '<S804>/CAN_TX_100ms' */
30523 /* SystemInitialize for Enabled SubSystem: '<S841>/Rolling_15_counter' */
30524 /* InitializeConditions for UnitDelay: '<S883>/Unit_Delay' */
30525 L4_MABX_DW.Unit_Delay_DSTATE = L4_MABX_P.Unit_Delay_InitialCondition_g;
30526
30527 /* SystemInitialize for Outport: '<S883>/Rolling_15_counter' */
30528 L4_MABX_B.Unit_Delay = L4_MABX_P.Rolling_15_counter_Y0;
30529
30530 /* End of SystemInitialize for SubSystem: '<S841>/Rolling_15_counter' */
30531
30532 /* SystemInitialize for Enabled SubSystem: '<S863>/PropB_XPR_FC' */
30533 /* SystemInitialize for Outport: '<S865>/TX status' */
30534 L4_MABX_B.SFunction1_o1_i = L4_MABX_P.TXstatus_Y0_m;
30535
30536 /* SystemInitialize for Outport: '<S865>/TX time' */
30537 L4_MABX_B.SFunction1_o2_nb = L4_MABX_P.TXtime_Y0_l;
30538
30539 /* SystemInitialize for Outport: '<S865>/TX delta time' */
30540 L4_MABX_B.SFunction1_o3_kv = L4_MABX_P.TXdeltatime_Y0_m1;
30541
30542 /* SystemInitialize for Outport: '<S865>/TX delay time' */
30543 L4_MABX_B.SFunction1_o4_mi = L4_MABX_P.TXdelaytime_Y0_at;
30544
30545 /* End of SystemInitialize for SubSystem: '<S863>/PropB_XPR_FC' */
30546
30547 /* SystemInitialize for Enabled SubSystem: '<S864>/PropB_XPR_FC' */
30548 /* SystemInitialize for Outport: '<S866>/TX status' */
30549 L4_MABX_B.SFunction1_o1_k1 = L4_MABX_P.TXstatus_Y0_c;
30550
30551 /* SystemInitialize for Outport: '<S866>/TX time' */
30552 L4_MABX_B.SFunction1_o2_np = L4_MABX_P.TXtime_Y0_d;
30553
30554 /* SystemInitialize for Outport: '<S866>/TX delta time' */
30555 L4_MABX_B.SFunction1_o3_lk = L4_MABX_P.TXdeltatime_Y0_o;
30556
30557 /* SystemInitialize for Outport: '<S866>/TX delay time' */
30558 L4_MABX_B.SFunction1_o4_i = L4_MABX_P.TXdelaytime_Y0_p;
30559
30560 /* End of SystemInitialize for SubSystem: '<S864>/PropB_XPR_FC' */
30561
30562 /* SystemInitialize for Enabled SubSystem: '<S893>/Std_PosRapidUpdate_01' */
30563 /* SystemInitialize for Outport: '<S894>/TX status' */
30564 L4_MABX_B.SFunction1_o1_ow = L4_MABX_P.TXstatus_Y0_j;
30565
30566 /* SystemInitialize for Outport: '<S894>/TX time' */
30567 L4_MABX_B.SFunction1_o2_ig = L4_MABX_P.TXtime_Y0_i2;
30568
30569 /* SystemInitialize for Outport: '<S894>/TX delta time' */
30570 L4_MABX_B.SFunction1_o3_j = L4_MABX_P.TXdeltatime_Y0_h;
30571
30572 /* SystemInitialize for Outport: '<S894>/TX delay time' */
30573 L4_MABX_B.SFunction1_o4_ey = L4_MABX_P.TXdelaytime_Y0_im;
30574
30575 /* End of SystemInitialize for SubSystem: '<S893>/Std_PosRapidUpdate_01' */
30576
30577 /* SystemInitialize for Enabled SubSystem: '<S843>/CCVS1_00' */
30578 /* SystemInitialize for Outport: '<S845>/TX status' */
30579 L4_MABX_B.SFunction1_o1_mt = L4_MABX_P.TXstatus_Y0_a;
30580
30581 /* SystemInitialize for Outport: '<S845>/TX time' */
30582 L4_MABX_B.SFunction1_o2_g3 = L4_MABX_P.TXtime_Y0_n;
30583
30584 /* SystemInitialize for Outport: '<S845>/TX delta time' */
30585 L4_MABX_B.SFunction1_o3_ft = L4_MABX_P.TXdeltatime_Y0_n;
30586
30587 /* SystemInitialize for Outport: '<S845>/TX delay time' */
30588 L4_MABX_B.SFunction1_o4_oo = L4_MABX_P.TXdelaytime_Y0_o;
30589
30590 /* End of SystemInitialize for SubSystem: '<S843>/CCVS1_00' */
30591
30592 /* SystemInitialize for Enabled SubSystem: '<S844>/CCVS1_00' */
30593 /* SystemInitialize for Outport: '<S846>/TX status' */
30594 L4_MABX_B.SFunction1_o1_dm = L4_MABX_P.TXstatus_Y0_k;
30595
30596 /* SystemInitialize for Outport: '<S846>/TX time' */
30597 L4_MABX_B.SFunction1_o2_hi = L4_MABX_P.TXtime_Y0_k;
30598
30599 /* SystemInitialize for Outport: '<S846>/TX delta time' */
30600 L4_MABX_B.SFunction1_o3_cz = L4_MABX_P.TXdeltatime_Y0_m;
30601
30602 /* SystemInitialize for Outport: '<S846>/TX delay time' */
30603 L4_MABX_B.SFunction1_o4_m1 = L4_MABX_P.TXdelaytime_Y0_l;
30604
30605 /* End of SystemInitialize for SubSystem: '<S844>/CCVS1_00' */
30606
30607 /* SystemInitialize for Enabled SubSystem: '<S847>/PropB_REAX_5_E4' */
30608 /* SystemInitialize for Outport: '<S849>/TX status' */
30609 L4_MABX_B.SFunction1_o1_p = L4_MABX_P.TXstatus_Y0_db;
30610
30611 /* SystemInitialize for Outport: '<S849>/TX time' */
30612 L4_MABX_B.SFunction1_o2_h3 = L4_MABX_P.TXtime_Y0_a;
30613
30614 /* SystemInitialize for Outport: '<S849>/TX delta time' */
30615 L4_MABX_B.SFunction1_o3_g0 = L4_MABX_P.TXdeltatime_Y0_mj;
30616
30617 /* SystemInitialize for Outport: '<S849>/TX delay time' */
30618 L4_MABX_B.SFunction1_o4_ht = L4_MABX_P.TXdelaytime_Y0_i;
30619
30620 /* End of SystemInitialize for SubSystem: '<S847>/PropB_REAX_5_E4' */
30621
30622 /* SystemInitialize for Enabled SubSystem: '<S848>/PropB_REAX_5_E4' */
30623 /* SystemInitialize for Outport: '<S850>/TX status' */
30624 L4_MABX_B.SFunction1_o1_n = L4_MABX_P.TXstatus_Y0_o;
30625
30626 /* SystemInitialize for Outport: '<S850>/TX time' */
30627 L4_MABX_B.SFunction1_o2_o = L4_MABX_P.TXtime_Y0_g;
30628
30629 /* SystemInitialize for Outport: '<S850>/TX delta time' */
30630 L4_MABX_B.SFunction1_o3_lz = L4_MABX_P.TXdeltatime_Y0_n0;
30631
30632 /* SystemInitialize for Outport: '<S850>/TX delay time' */
30633 L4_MABX_B.SFunction1_o4_iq = L4_MABX_P.TXdelaytime_Y0_a;
30634
30635 /* End of SystemInitialize for SubSystem: '<S848>/PropB_REAX_5_E4' */
30636
30637 /* SystemInitialize for Enabled SubSystem: '<S867>/Std_COGSOGRapidUpdate_01' */
30638 /* SystemInitialize for Outport: '<S868>/TX status' */
30639 L4_MABX_B.SFunction1_o1_fj = L4_MABX_P.TXstatus_Y0_e;
30640
30641 /* SystemInitialize for Outport: '<S868>/TX time' */
30642 L4_MABX_B.SFunction1_o2_nt = L4_MABX_P.TXtime_Y0_i;
30643
30644 /* SystemInitialize for Outport: '<S868>/TX delta time' */
30645 L4_MABX_B.SFunction1_o3_k = L4_MABX_P.TXdeltatime_Y0_fu;
30646
30647 /* SystemInitialize for Outport: '<S868>/TX delay time' */
30648 L4_MABX_B.SFunction1_o4_l = L4_MABX_P.TXdelaytime_Y0_h;
30649
30650 /* End of SystemInitialize for SubSystem: '<S867>/Std_COGSOGRapidUpdate_01' */
30651
30652 /* SystemInitialize for Enabled SubSystem: '<S869>/EBC1_TX' */
30653 /* SystemInitialize for Outport: '<S870>/TX status' */
30654 L4_MABX_B.SFunction1_o1_m = L4_MABX_P.TXstatus_Y0_at;
30655
30656 /* SystemInitialize for Outport: '<S870>/TX time' */
30657 L4_MABX_B.SFunction1_o2_h = L4_MABX_P.TXtime_Y0_kr;
30658
30659 /* SystemInitialize for Outport: '<S870>/TX delta time' */
30660 L4_MABX_B.SFunction1_o3_c0 = L4_MABX_P.TXdeltatime_Y0_b;
30661
30662 /* SystemInitialize for Outport: '<S870>/TX delay time' */
30663 L4_MABX_B.SFunction1_o4_be = L4_MABX_P.TXdelaytime_Y0_e;
30664
30665 /* End of SystemInitialize for SubSystem: '<S869>/EBC1_TX' */
30666 /* End of SystemInitialize for SubSystem: '<S804>/CAN_TX_100ms' */
30667
30668 /* SystemInitialize for Atomic SubSystem: '<S804>/CAN_TX_10ms' */
30669 /* InitializeConditions for UnitDelay: '<S961>/Unit_Delay' */
30670 L4_MABX_DW.Unit_Delay_DSTATE_g0 = L4_MABX_P.Unit_Delay_InitialCondition_j4;
30671
30672 /* InitializeConditions for UnitDelay: '<S962>/Unit Delay' */
30673 L4_MABX_DW.UnitDelay_DSTATE_a = L4_MABX_P.UnitDelay_InitialCondition_m1;
30674
30675 /* SystemInitialize for Enabled SubSystem: '<S906>/ACCS' */
30676 /* SystemInitialize for Outport: '<S907>/TX status' */
30677 L4_MABX_B.SFunction1_o1_aa = L4_MABX_P.TXstatus_Y0_a4;
30678
30679 /* SystemInitialize for Outport: '<S907>/TX time' */
30680 L4_MABX_B.SFunction1_o2_ft = L4_MABX_P.TXtime_Y0_nd;
30681
30682 /* SystemInitialize for Outport: '<S907>/TX delta time' */
30683 L4_MABX_B.SFunction1_o3_o = L4_MABX_P.TXdeltatime_Y0_l;
30684
30685 /* SystemInitialize for Outport: '<S907>/TX delay time' */
30686 L4_MABX_B.SFunction1_o4_b = L4_MABX_P.TXdelaytime_Y0_d;
30687
30688 /* End of SystemInitialize for SubSystem: '<S906>/ACCS' */
30689
30690 /* SystemInitialize for Enabled SubSystem: '<S914>/EEC1_00' */
30691 /* SystemInitialize for Outport: '<S916>/TX status' */
30692 L4_MABX_B.SFunction1_o1_k5 = L4_MABX_P.TXstatus_Y0_jb;
30693
30694 /* SystemInitialize for Outport: '<S916>/TX time' */
30695 L4_MABX_B.SFunction1_o2_e = L4_MABX_P.TXtime_Y0_md;
30696
30697 /* SystemInitialize for Outport: '<S916>/TX delta time' */
30698 L4_MABX_B.SFunction1_o3_lo = L4_MABX_P.TXdeltatime_Y0_j;
30699
30700 /* SystemInitialize for Outport: '<S916>/TX delay time' */
30701 L4_MABX_B.SFunction1_o4_h = L4_MABX_P.TXdelaytime_Y0_d1;
30702
30703 /* End of SystemInitialize for SubSystem: '<S914>/EEC1_00' */
30704
30705 /* SystemInitialize for Enabled SubSystem: '<S915>/EEC1_00' */
30706 /* SystemInitialize for Outport: '<S917>/TX status' */
30707 L4_MABX_B.SFunction1_o1_ko = L4_MABX_P.TXstatus_Y0_i;
30708
30709 /* SystemInitialize for Outport: '<S917>/TX time' */
30710 L4_MABX_B.SFunction1_o2_cr = L4_MABX_P.TXtime_Y0_f;
30711
30712 /* SystemInitialize for Outport: '<S917>/TX delta time' */
30713 L4_MABX_B.SFunction1_o3_c = L4_MABX_P.TXdeltatime_Y0_i;
30714
30715 /* SystemInitialize for Outport: '<S917>/TX delay time' */
30716 L4_MABX_B.SFunction1_o4_nc = L4_MABX_P.TXdelaytime_Y0_g;
30717
30718 /* End of SystemInitialize for SubSystem: '<S915>/EEC1_00' */
30719
30720 /* SystemInitialize for Merge: '<S932>/Merge' */
30721 L4_MABX_B.Merge = L4_MABX_P.Merge_InitialOutput;
30722
30723 /* SystemInitialize for Enabled SubSystem: '<S918>/PropB_REAX_1_E4' */
30724 /* SystemInitialize for Outport: '<S920>/TX status' */
30725 L4_MABX_B.SFunction1_o1_ol = L4_MABX_P.TXstatus_Y0_f;
30726
30727 /* SystemInitialize for Outport: '<S920>/TX time' */
30728 L4_MABX_B.SFunction1_o2_b = L4_MABX_P.TXtime_Y0_c;
30729
30730 /* SystemInitialize for Outport: '<S920>/TX delta time' */
30731 L4_MABX_B.SFunction1_o3_dr = L4_MABX_P.TXdeltatime_Y0_g;
30732
30733 /* SystemInitialize for Outport: '<S920>/TX delay time' */
30734 L4_MABX_B.SFunction1_o4_k = L4_MABX_P.TXdelaytime_Y0_m;
30735
30736 /* End of SystemInitialize for SubSystem: '<S918>/PropB_REAX_1_E4' */
30737
30738 /* SystemInitialize for Enabled SubSystem: '<S919>/PropB_REAX_1_E4' */
30739 /* SystemInitialize for Outport: '<S921>/TX status' */
30740 L4_MABX_B.SFunction1_o1_o0 = L4_MABX_P.TXstatus_Y0_jq;
30741
30742 /* SystemInitialize for Outport: '<S921>/TX time' */
30743 L4_MABX_B.SFunction1_o2_gr = L4_MABX_P.TXtime_Y0_p;
30744
30745 /* SystemInitialize for Outport: '<S921>/TX delta time' */
30746 L4_MABX_B.SFunction1_o3_n = L4_MABX_P.TXdeltatime_Y0_i2;
30747
30748 /* SystemInitialize for Outport: '<S921>/TX delay time' */
30749 L4_MABX_B.SFunction1_o4_ee = L4_MABX_P.TXdelaytime_Y0_c;
30750
30751 /* End of SystemInitialize for SubSystem: '<S919>/PropB_REAX_1_E4' */
30752
30753 /* SystemInitialize for Enabled SubSystem: '<S928>/VDC2_0B' */
30754 /* SystemInitialize for Outport: '<S929>/TX status' */
30755 L4_MABX_B.SFunction1_o1_h = L4_MABX_P.TXstatus_Y0_i3;
30756
30757 /* SystemInitialize for Outport: '<S929>/TX time' */
30758 L4_MABX_B.SFunction1_o2_d = L4_MABX_P.TXtime_Y0_dk;
30759
30760 /* SystemInitialize for Outport: '<S929>/TX delta time' */
30761 L4_MABX_B.SFunction1_o3_h = L4_MABX_P.TXdeltatime_Y0_k;
30762
30763 /* SystemInitialize for Outport: '<S929>/TX delay time' */
30764 L4_MABX_B.SFunction1_o4_o = L4_MABX_P.TXdelaytime_Y0_nk;
30765
30766 /* End of SystemInitialize for SubSystem: '<S928>/VDC2_0B' */
30767 /* End of SystemInitialize for SubSystem: '<S804>/CAN_TX_10ms' */
30768
30769 /* SystemInitialize for Atomic SubSystem: '<S804>/CAN_TX_20ms' */
30770 /* InitializeConditions for UnitDelay: '<S966>/Unit_Delay' */
30771 L4_MABX_DW.Unit_Delay_DSTATE_mz = L4_MABX_P.Unit_Delay_InitialCondition_or;
30772
30773 /* InitializeConditions for UnitDelay: '<S989>/Unit_Delay' */
30774 L4_MABX_DW.Unit_Delay_DSTATE_ju = L4_MABX_P.Unit_Delay_InitialCondition_h5;
30775
30776 /* InitializeConditions for UnitDelay: '<S990>/Unit Delay' */
30777 L4_MABX_DW.UnitDelay_DSTATE_j = L4_MABX_P.UnitDelay_InitialCondition_ip;
30778
30779 /* SystemInitialize for Enabled SubSystem: '<S973>/PropB_XBR_B3' */
30780 /* SystemInitialize for Outport: '<S974>/TX status' */
30781 L4_MABX_B.SFunction1_o1_a = L4_MABX_P.TXstatus_Y0_kq;
30782
30783 /* SystemInitialize for Outport: '<S974>/TX time' */
30784 L4_MABX_B.SFunction1_o2_i2 = L4_MABX_P.TXtime_Y0_a0;
30785
30786 /* SystemInitialize for Outport: '<S974>/TX delta time' */
30787 L4_MABX_B.SFunction1_o3_lq = L4_MABX_P.TXdeltatime_Y0_nr;
30788
30789 /* SystemInitialize for Outport: '<S974>/TX delay time' */
30790 L4_MABX_B.SFunction1_o4_ds = L4_MABX_P.TXdelaytime_Y0_g3;
30791
30792 /* End of SystemInitialize for SubSystem: '<S973>/PropB_XBR_B3' */
30793
30794 /* SystemInitialize for Enabled SubSystem: '<S975>/PropB_Bendix_2C2_XPR' */
30795 /* SystemInitialize for Outport: '<S976>/TX status' */
30796 L4_MABX_B.SFunction1_o1_g = L4_MABX_P.TXstatus_Y0_d5;
30797
30798 /* SystemInitialize for Outport: '<S976>/TX time' */
30799 L4_MABX_B.SFunction1_o2_j = L4_MABX_P.TXtime_Y0_gz;
30800
30801 /* SystemInitialize for Outport: '<S976>/TX delta time' */
30802 L4_MABX_B.SFunction1_o3_ls = L4_MABX_P.TXdeltatime_Y0_c;
30803
30804 /* SystemInitialize for Outport: '<S976>/TX delay time' */
30805 L4_MABX_B.SFunction1_o4_mx = L4_MABX_P.TXdelaytime_Y0_pg;
30806
30807 /* End of SystemInitialize for SubSystem: '<S975>/PropB_Bendix_2C2_XPR' */
30808
30809 /* SystemInitialize for Enabled SubSystem: '<S983>/Std_OdometryData' */
30810 /* SystemInitialize for Outport: '<S984>/TX status' */
30811 L4_MABX_B.SFunction1_o1_d = L4_MABX_P.TXstatus_Y0_ds;
30812
30813 /* SystemInitialize for Outport: '<S984>/TX time' */
30814 L4_MABX_B.SFunction1_o2_n = L4_MABX_P.TXtime_Y0_fe;
30815
30816 /* SystemInitialize for Outport: '<S984>/TX delta time' */
30817 L4_MABX_B.SFunction1_o3_g3 = L4_MABX_P.TXdeltatime_Y0_kq;
30818
30819 /* SystemInitialize for Outport: '<S984>/TX delay time' */
30820 L4_MABX_B.SFunction1_o4_p = L4_MABX_P.TXdelaytime_Y0_h2;
30821
30822 /* End of SystemInitialize for SubSystem: '<S983>/Std_OdometryData' */
30823 /* End of SystemInitialize for SubSystem: '<S804>/CAN_TX_20ms' */
30824
30825 /* SystemInitialize for Atomic SubSystem: '<S804>/CAN_TX_5000ms' */
30826 /* InitializeConditions for UnitDelay: '<S1004>/Unit_Delay' */
30827 L4_MABX_DW.Unit_Delay_DSTATE_eg = L4_MABX_P.Unit_Delay_InitialCondition_hm;
30828
30829 /* InitializeConditions for UnitDelay: '<S1005>/Unit Delay' */
30830 L4_MABX_DW.UnitDelay_DSTATE_h = L4_MABX_P.UnitDelay_InitialCondition_g4;
30831
30832 /* SystemInitialize for Enabled SubSystem: '<S998>/RQST_13_E4' */
30833 /* SystemInitialize for Outport: '<S1000>/TX status' */
30834 L4_MABX_B.SFunction1_o1_er = L4_MABX_P.TXstatus_Y0_c3;
30835
30836 /* SystemInitialize for Outport: '<S1000>/TX time' */
30837 L4_MABX_B.SFunction1_o2_l = L4_MABX_P.TXtime_Y0_c0;
30838
30839 /* SystemInitialize for Outport: '<S1000>/TX delta time' */
30840 L4_MABX_B.SFunction1_o3_m = L4_MABX_P.TXdeltatime_Y0_ow;
30841
30842 /* SystemInitialize for Outport: '<S1000>/TX delay time' */
30843 L4_MABX_B.SFunction1_o4_d = L4_MABX_P.TXdelaytime_Y0_j;
30844
30845 /* End of SystemInitialize for SubSystem: '<S998>/RQST_13_E4' */
30846 /* End of SystemInitialize for SubSystem: '<S804>/CAN_TX_5000ms' */
30847
30848 /* SystemInitialize for Enabled SubSystem: '<S622>/TC1_03_05' */
30849 /* SystemInitialize for Outport: '<S623>/SPN681_TransGearShiftInhibitReq' */
30850 L4_MABX_B.SFunction1_o1_cn = L4_MABX_P.SPN681_TransGearShiftInhibitReq;
30851
30852 /* SystemInitialize for Outport: '<S623>/SPN682_TransTrqConvLockupDisReq' */
30853 L4_MABX_B.SFunction1_o2_p = L4_MABX_P.SPN682_TransTrqConvLockupDisReq;
30854
30855 /* SystemInitialize for Outport: '<S623>/SPN683_DisengageDrivelineReq' */
30856 L4_MABX_B.SFunction1_o3_n1 = L4_MABX_P.SPN683_DisengageDrivelineReq_Y0;
30857
30858 /* SystemInitialize for Outport: '<S623>/SPN4242_TransRevGearShiftInhibRq' */
30859 L4_MABX_B.SFunction1_o4_p0 = L4_MABX_P.SPN4242_TransRevGearShiftInhibR;
30860
30861 /* SystemInitialize for Outport: '<S623>/SPN684_RequestedPercClutchSlip' */
30862 L4_MABX_B.SFunction1_o5_b = L4_MABX_P.SPN684_RequestedPercClutchSlip_;
30863
30864 /* SystemInitialize for Outport: '<S623>/SPN525_TransRequestedGear' */
30865 L4_MABX_B.SFunction1_o6_f = L4_MABX_P.SPN525_TransRequestedGear_Y0;
30866
30867 /* SystemInitialize for Outport: '<S623>/SPN685_DisengageDiffLockRqFrAx1' */
30868 L4_MABX_B.SFunction1_o7_i = L4_MABX_P.SPN685_DisengageDiffLockRqFrAx1;
30869
30870 /* SystemInitialize for Outport: '<S623>/SPN686_DisengageDiffLockRqFrAx2' */
30871 L4_MABX_B.SFunction1_o8_c = L4_MABX_P.SPN686_DisengageDiffLockRqFrAx2;
30872
30873 /* SystemInitialize for Outport: '<S623>/SPN687_DisengageDiffLockRqRrAx1' */
30874 L4_MABX_B.SFunction1_o9_e = L4_MABX_P.SPN687_DisengageDiffLockRqRrAx1;
30875
30876 /* SystemInitialize for Outport: '<S623>/SPN688_DisengageDiffLockRqRrAx2' */
30877 L4_MABX_B.SFunction1_o10_a = L4_MABX_P.SPN688_DisengageDiffLockRqRrAx2;
30878
30879 /* SystemInitialize for Outport: '<S623>/SPN689_DisengageDiffLockRqC' */
30880 L4_MABX_B.SFunction1_o11 = L4_MABX_P.SPN689_DisengageDiffLockRqC_Y0;
30881
30882 /* SystemInitialize for Outport: '<S623>/SPN690_DisengageDiffLockRqCF' */
30883 L4_MABX_B.SFunction1_o12 = L4_MABX_P.SPN690_DisengageDiffLockRqCF_Y0;
30884
30885 /* SystemInitialize for Outport: '<S623>/SPN691_DisengageDiffLockRqCR' */
30886 L4_MABX_B.SFunction1_o13 = L4_MABX_P.SPN691_DisengageDiffLockRqCR_Y0;
30887
30888 /* SystemInitialize for Outport: '<S623>/SPN5762_TransLoadRedInhibitRq' */
30889 L4_MABX_B.SFunction1_o14 = L4_MABX_P.SPN5762_TransLoadRedInhibitRq_Y;
30890
30891 /* SystemInitialize for Outport: '<S623>/SPN1852_TransmissionMode1' */
30892 L4_MABX_B.SFunction1_o15 = L4_MABX_P.SPN1852_TransmissionMode1_Y0;
30893
30894 /* SystemInitialize for Outport: '<S623>/SPN1853_TransmissionMode2' */
30895 L4_MABX_B.SFunction1_o16 = L4_MABX_P.SPN1853_TransmissionMode2_Y0;
30896
30897 /* SystemInitialize for Outport: '<S623>/SPN1854_TransmissionMode3' */
30898 L4_MABX_B.SFunction1_o17 = L4_MABX_P.SPN1854_TransmissionMode3_Y0;
30899
30900 /* SystemInitialize for Outport: '<S623>/SPN1855_TransmissionMode4' */
30901 L4_MABX_B.SFunction1_o18 = L4_MABX_P.SPN1855_TransmissionMode4_Y0;
30902
30903 /* SystemInitialize for Outport: '<S623>/SPN7695_TransAutoNeutralRequest' */
30904 L4_MABX_B.SFunction1_o19 = L4_MABX_P.SPN7695_TransAutoNeutralRequest;
30905
30906 /* SystemInitialize for Outport: '<S623>/SPN4255_TransRequestedLaunchGear' */
30907 L4_MABX_B.SFunction1_o20 = L4_MABX_P.SPN4255_TransRequestedLaunchGea;
30908
30909 /* SystemInitialize for Outport: '<S623>/SPN2985_TransShiftSelDispModeSw' */
30910 L4_MABX_B.SFunction1_o21 = L4_MABX_P.SPN2985_TransShiftSelDispModeSw;
30911
30912 /* SystemInitialize for Outport: '<S623>/SPN4246_TransmissionMode5' */
30913 L4_MABX_B.SFunction1_o22 = L4_MABX_P.SPN4246_TransmissionMode5_Y0;
30914
30915 /* SystemInitialize for Outport: '<S623>/SPN4247_TransmissionMode6' */
30916 L4_MABX_B.SFunction1_o23 = L4_MABX_P.SPN4247_TransmissionMode6_Y0;
30917
30918 /* SystemInitialize for Outport: '<S623>/SPN4248_TransmissionMode7' */
30919 L4_MABX_B.SFunction1_o24 = L4_MABX_P.SPN4248_TransmissionMode7_Y0;
30920
30921 /* SystemInitialize for Outport: '<S623>/SPN4249_TransmissionMode8' */
30922 L4_MABX_B.SFunction1_o25 = L4_MABX_P.SPN4249_TransmissionMode8_Y0;
30923
30924 /* SystemInitialize for Outport: '<S623>/RX status' */
30925 L4_MABX_B.SFunction1_o26 = L4_MABX_P.RXstatus_Y0_hf;
30926
30927 /* SystemInitialize for Outport: '<S623>/RX time' */
30928 L4_MABX_B.SFunction1_o27 = L4_MABX_P.RXtime_Y0_di;
30929
30930 /* SystemInitialize for Outport: '<S623>/RX delta time' */
30931 L4_MABX_B.SFunction1_o28 = L4_MABX_P.RXdeltatime_Y0_c1;
30932
30933 /* End of SystemInitialize for SubSystem: '<S622>/TC1_03_05' */
30934
30935 /* SystemInitialize for Atomic SubSystem: '<S804>/CAN_TX_50ms' */
30936 /* SystemInitialize for Enabled SubSystem: '<S1009>/CCVS1_E3' */
30937 /* SystemInitialize for Outport: '<S1011>/TX status' */
30938 L4_MABX_B.SFunction1_o1_k = L4_MABX_P.TXstatus_Y0_c2;
30939
30940 /* SystemInitialize for Outport: '<S1011>/TX time' */
30941 L4_MABX_B.SFunction1_o2_fy = L4_MABX_P.TXtime_Y0_gb;
30942
30943 /* SystemInitialize for Outport: '<S1011>/TX delta time' */
30944 L4_MABX_B.SFunction1_o3_f = L4_MABX_P.TXdeltatime_Y0_gy;
30945
30946 /* SystemInitialize for Outport: '<S1011>/TX delay time' */
30947 L4_MABX_B.SFunction1_o4_n = L4_MABX_P.TXdelaytime_Y0_k;
30948
30949 /* End of SystemInitialize for SubSystem: '<S1009>/CCVS1_E3' */
30950
30951 /* SystemInitialize for Enabled SubSystem: '<S1010>/TC1_03_05' */
30952 /* SystemInitialize for Outport: '<S1012>/TX status' */
30953 L4_MABX_B.SFunction1_o1_o = L4_MABX_P.TXstatus_Y0_k4;
30954
30955 /* SystemInitialize for Outport: '<S1012>/TX time' */
30956 L4_MABX_B.SFunction1_o2_a = L4_MABX_P.TXtime_Y0_fu;
30957
30958 /* SystemInitialize for Outport: '<S1012>/TX delta time' */
30959 L4_MABX_B.SFunction1_o3_l = L4_MABX_P.TXdeltatime_Y0_kz;
30960
30961 /* SystemInitialize for Outport: '<S1012>/TX delay time' */
30962 L4_MABX_B.SFunction1_o4_e = L4_MABX_P.TXdelaytime_Y0_ph;
30963
30964 /* End of SystemInitialize for SubSystem: '<S1010>/TC1_03_05' */
30965 /* End of SystemInitialize for SubSystem: '<S804>/CAN_TX_50ms' */
30966
30967 /* SystemInitialize for Enabled SubSystem: '<S620>/SystemTime_01' */
30968 /* SystemInitialize for Outport: '<S621>/SID' */
30969 L4_MABX_B.SFunction1_o1_i5 = L4_MABX_P.SID_Y0_b;
30970
30971 /* SystemInitialize for Outport: '<S621>/Source' */
30972 L4_MABX_B.SFunction1_o2_p1 = L4_MABX_P.Source_Y0;
30973
30974 /* SystemInitialize for Outport: '<S621>/Date' */
30975 L4_MABX_B.SFunction1_o3_nm = L4_MABX_P.Date_Y0;
30976
30977 /* SystemInitialize for Outport: '<S621>/Time' */
30978 L4_MABX_B.SFunction1_o4_ki = L4_MABX_P.Time_Y0;
30979
30980 /* SystemInitialize for Outport: '<S621>/RX status' */
30981 L4_MABX_B.SFunction1_o5_f = L4_MABX_P.RXstatus_Y0_o2;
30982
30983 /* SystemInitialize for Outport: '<S621>/RX time' */
30984 L4_MABX_B.SFunction1_o6_h = L4_MABX_P.RXtime_Y0_dd;
30985
30986 /* SystemInitialize for Outport: '<S621>/RX delta time' */
30987 L4_MABX_B.SFunction1_o7_li = L4_MABX_P.RXdeltatime_Y0_li;
30988
30989 /* End of SystemInitialize for SubSystem: '<S620>/SystemTime_01' */
30990
30991 /* SystemInitialize for Enabled SubSystem: '<S1022>/Std_SystemTime_01' */
30992 /* SystemInitialize for Outport: '<S1024>/TX status' */
30993 L4_MABX_B.SFunction1_o1_j = L4_MABX_P.TXstatus_Y0_l;
30994
30995 /* SystemInitialize for Outport: '<S1024>/TX time' */
30996 L4_MABX_B.SFunction1_o2_i4 = L4_MABX_P.TXtime_Y0_e;
30997
30998 /* SystemInitialize for Outport: '<S1024>/TX delta time' */
30999 L4_MABX_B.SFunction1_o3 = L4_MABX_P.TXdeltatime_Y0_gx;
31000
31001 /* SystemInitialize for Outport: '<S1024>/TX delay time' */
31002 L4_MABX_B.SFunction1_o4 = L4_MABX_P.TXdelaytime_Y0_ag;
31003
31004 /* End of SystemInitialize for SubSystem: '<S1022>/Std_SystemTime_01' */
31005
31006 /* SystemInitialize for Triggered SubSystem: '<S1017>/CAN_TYPE1_TX_M1_C1' */
31007 /* SystemInitialize for Outport: '<S1019>/TX status' */
31008 L4_MABX_B.SFunction1_o1_b = L4_MABX_P.TXstatus_Y0_dsg;
31009
31010 /* SystemInitialize for Outport: '<S1019>/TX time' */
31011 L4_MABX_B.SFunction1_o2_g = L4_MABX_P.TXtime_Y0_kl;
31012
31013 /* SystemInitialize for Outport: '<S1019>/TX delta time' */
31014 L4_MABX_B.SFunction1_o3_d = L4_MABX_P.TXdeltatime_Y0_lu;
31015
31016 /* SystemInitialize for Outport: '<S1019>/TX delay time' */
31017 L4_MABX_B.SFunction1_o4_g = L4_MABX_P.TXdelaytime_Y0_ne;
31018
31019 /* End of SystemInitialize for SubSystem: '<S1017>/CAN_TYPE1_TX_M1_C1' */
31020
31021 /* SystemInitialize for Triggered SubSystem: '<S1018>/CAN_TYPE1_TX_M1_C1' */
31022 /* SystemInitialize for Outport: '<S1020>/TX status' */
31023 L4_MABX_B.SFunction1_o1_c = L4_MABX_P.TXstatus_Y0_b;
31024
31025 /* SystemInitialize for Outport: '<S1020>/TX time' */
31026 L4_MABX_B.SFunction1_o2_f = L4_MABX_P.TXtime_Y0_fn;
31027
31028 /* SystemInitialize for Outport: '<S1020>/TX delta time' */
31029 L4_MABX_B.SFunction1_o3_g = L4_MABX_P.TXdeltatime_Y0_ov;
31030
31031 /* SystemInitialize for Outport: '<S1020>/TX delay time' */
31032 L4_MABX_B.SFunction1_o4_m = L4_MABX_P.TXdelaytime_Y0_at4;
31033
31034 /* End of SystemInitialize for SubSystem: '<S1018>/CAN_TYPE1_TX_M1_C1' */
31035
31036 /* SystemInitialize for Chart: '<S814>/Chart' */
31037 L4_MABX_DW.temporalCounter_i1_a = 0U;
31038 L4_MABX_DW.is_active_c4_SUB_ECU_L4_MABX_HW = 0U;
31039 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_NO_ACTIVE_CHILD;
31040
31041 /* SystemInitialize for Enabled SubSystem: '<S559>/GNSSDOPs_011' */
31042 /* SystemInitialize for Outport: '<S560>/SID' */
31043 L4_MABX_B.SFunction1_o1_hz = L4_MABX_P.SID_Y0_h;
31044
31045 /* SystemInitialize for Outport: '<S560>/SetMode' */
31046 L4_MABX_B.SFunction1_o2_a5 = L4_MABX_P.SetMode_Y0;
31047
31048 /* SystemInitialize for Outport: '<S560>/OpMode' */
31049 L4_MABX_B.SFunction1_o3_i = L4_MABX_P.OpMode_Y0;
31050
31051 /* SystemInitialize for Outport: '<S560>/HDOP_' */
31052 L4_MABX_B.SFunction1_o4_h5 = L4_MABX_P.HDOP_Y0;
31053
31054 /* SystemInitialize for Outport: '<S560>/VDOP' */
31055 L4_MABX_B.SFunction1_o5_gi = L4_MABX_P.VDOP_Y0;
31056
31057 /* SystemInitialize for Outport: '<S560>/TDOP' */
31058 L4_MABX_B.SFunction1_o6_d = L4_MABX_P.TDOP_Y0;
31059
31060 /* SystemInitialize for Outport: '<S560>/RX status' */
31061 L4_MABX_B.SFunction1_o7_ob = L4_MABX_P.RXstatus_Y0_a;
31062
31063 /* SystemInitialize for Outport: '<S560>/RX time' */
31064 L4_MABX_B.SFunction1_o8_h0 = L4_MABX_P.RXtime_Y0_p2o;
31065
31066 /* SystemInitialize for Outport: '<S560>/RX delta time' */
31067 L4_MABX_B.SFunction1_o9_nr = L4_MABX_P.RXdeltatime_Y0_go;
31068
31069 /* End of SystemInitialize for SubSystem: '<S559>/GNSSDOPs_011' */
31070
31071 /* SystemInitialize for Enabled SubSystem: '<S559>/GNSSDOPs_1' */
31072 /* SystemInitialize for Outport: '<S561>/SID' */
31073 L4_MABX_B.SFunction1_o1_ou = L4_MABX_P.SID_Y0_m;
31074
31075 /* SystemInitialize for Outport: '<S561>/SetMode' */
31076 L4_MABX_B.SFunction1_o2_e4 = L4_MABX_P.SetMode_Y0_e;
31077
31078 /* SystemInitialize for Outport: '<S561>/OpMode' */
31079 L4_MABX_B.SFunction1_o3_nc = L4_MABX_P.OpMode_Y0_g;
31080
31081 /* SystemInitialize for Outport: '<S561>/HDOP_' */
31082 L4_MABX_B.SFunction1_o4_nk = L4_MABX_P.HDOP_Y0_l;
31083
31084 /* SystemInitialize for Outport: '<S561>/VDOP' */
31085 L4_MABX_B.SFunction1_o5_fr = L4_MABX_P.VDOP_Y0_l;
31086
31087 /* SystemInitialize for Outport: '<S561>/TDOP' */
31088 L4_MABX_B.SFunction1_o6_mi = L4_MABX_P.TDOP_Y0_d;
31089
31090 /* SystemInitialize for Outport: '<S561>/RX status' */
31091 L4_MABX_B.SFunction1_o7_eh = L4_MABX_P.RXstatus_Y0_pb;
31092
31093 /* SystemInitialize for Outport: '<S561>/RX time' */
31094 L4_MABX_B.SFunction1_o8_mx = L4_MABX_P.RXtime_Y0_dw;
31095
31096 /* SystemInitialize for Outport: '<S561>/RX delta time' */
31097 L4_MABX_B.SFunction1_o9_ie = L4_MABX_P.RXdeltatime_Y0_p;
31098
31099 /* End of SystemInitialize for SubSystem: '<S559>/GNSSDOPs_1' */
31100
31101 /* SystemInitialize for Atomic SubSystem: '<S65>/Task_20ms' */
31102 /* InitializeConditions for UnitDelay: '<S382>/Unit Delay1' */
31103 L4_MABX_DW.UnitDelay1_DSTATE = L4_MABX_P.UnitDelay1_InitialCondition_p;
31104
31105 /* InitializeConditions for DiscreteIntegrator: '<S383>/LongitudnalPosition' */
31106 L4_MABX_DW.LongitudnalPosition_DSTATE = L4_MABX_B.InitialPosition;
31107 L4_MABX_DW.LongitudnalPosition_PrevResetSt = 2;
31108
31109 /* InitializeConditions for DiscreteIntegrator: '<S383>/VehHeading' */
31110 L4_MABX_DW.VehHeading_DSTATE = L4_MABX_B.InitialHeading;
31111 L4_MABX_DW.VehHeading_PrevResetState = 2;
31112
31113 /* InitializeConditions for DiscreteIntegrator: '<S383>/XPosition' */
31114 L4_MABX_DW.XPosition_DSTATE = L4_MABX_B.InitialXPosition;
31115 L4_MABX_DW.XPosition_PrevResetState = 2;
31116
31117 /* InitializeConditions for DiscreteIntegrator: '<S383>/YPosition' */
31118 L4_MABX_DW.YPosition_DSTATE = L4_MABX_B.InitialYPosition;
31119 L4_MABX_DW.YPosition_PrevResetState = 2;
31120
31121 /* End of SystemInitialize for SubSystem: '<S65>/Task_20ms' */
31122
31123 /* SystemInitialize for S-Function (rti_commonblock): '<S394>/S-Function1' incorporates:
31124 * SubSystem: '<S386>/Background_Task'
31125 */
31126 L4_MAB_Background_Task_Init();
31127
31128 /* End of SystemInitialize for S-Function (rti_commonblock): '<S394>/S-Function1' */
31129
31130 /* SystemInitialize for S-Function (rti_commonblock): '<S400>/S-Function1' incorporates:
31131 * SubSystem: '<S386>/Interrupt_Task'
31132 */
31133 L4_MABX_Interrupt_Task_Init();
31134
31135 /* End of SystemInitialize for S-Function (rti_commonblock): '<S400>/S-Function1' */
31136
31137 /* SystemInitialize for Enabled SubSystem: '<S481>/AEBS1_A0' */
31138 /* SystemInitialize for Outport: '<S482>/AdvEmergencyBrkSysState' */
31139 L4_MABX_B.SFunction1_o1_db = L4_MABX_P.AdvEmergencyBrkSysState_Y0;
31140
31141 /* SystemInitialize for Outport: '<S482>/CollisionWarningLevel' */
31142 L4_MABX_B.SFunction1_o2_be = L4_MABX_P.CollisionWarningLevel_Y0;
31143
31144 /* SystemInitialize for Outport: '<S482>/RelObjctDetForAdvEmergBrakingSys' */
31145 L4_MABX_B.SFunction1_o3_f5 = L4_MABX_P.RelObjctDetForAdvEmergBrakingSy;
31146
31147 /* SystemInitialize for Outport: '<S482>/BendOffProbabOfRelevantObject' */
31148 L4_MABX_B.SFunction1_o4_aw = L4_MABX_P.BendOffProbabOfRelevantObject_Y;
31149
31150 /* SystemInitialize for Outport: '<S482>/TimeToCollisionWithRelevantObj' */
31151 L4_MABX_B.SFunction1_o5_gr = L4_MABX_P.TimeToCollisionWithRelevantObj_;
31152
31153 /* SystemInitialize for Outport: '<S482>/RX status' */
31154 L4_MABX_B.SFunction1_o6_b = L4_MABX_P.RXstatus_Y0_m;
31155
31156 /* SystemInitialize for Outport: '<S482>/RX time' */
31157 L4_MABX_B.SFunction1_o7_b = L4_MABX_P.RXtime_Y0_p;
31158
31159 /* SystemInitialize for Outport: '<S482>/RX delta time' */
31160 L4_MABX_B.SFunction1_o8_ll = L4_MABX_P.RXdeltatime_Y0_gs;
31161
31162 /* End of SystemInitialize for SubSystem: '<S481>/AEBS1_A0' */
31163
31164 /* SystemInitialize for Enabled SubSystem: '<S487>/B2' */
31165 /* SystemInitialize for Outport: '<S488>/BrakeAppPressDemanded' */
31166 L4_MABX_B.SFunction1_o1_dt = L4_MABX_P.BrakeAppPressDemanded_Y0;
31167
31168 /* SystemInitialize for Outport: '<S488>/BrakeSwitch2' */
31169 L4_MABX_B.SFunction1_o2_kr = L4_MABX_P.BrakeSwitch2_Y0;
31170
31171 /* SystemInitialize for Outport: '<S488>/RX status' */
31172 L4_MABX_B.SFunction1_o3_br = L4_MABX_P.RXstatus_Y0_e;
31173
31174 /* SystemInitialize for Outport: '<S488>/RX time' */
31175 L4_MABX_B.SFunction1_o4_m3 = L4_MABX_P.RXtime_Y0_c;
31176
31177 /* SystemInitialize for Outport: '<S488>/RX delta time' */
31178 L4_MABX_B.SFunction1_o5_hzp = L4_MABX_P.RXdeltatime_Y0_j;
31179
31180 /* End of SystemInitialize for SubSystem: '<S487>/B2' */
31181
31182 /* SystemInitialize for Enabled SubSystem: '<S489>/Tracks' */
31183 /* SystemInitialize for Outport: '<S490>/tr0_track_selection_status' */
31184 L4_MABX_B.SFunction1_o1_bd = L4_MABX_P.tr0_track_selection_status_Y0;
31185
31186 /* SystemInitialize for Outport: '<S490>/tr0_corrected_lateral_distance' */
31187 L4_MABX_B.SFunction1_o2_cv = L4_MABX_P.tr0_corrected_lateral_distance_;
31188
31189 /* SystemInitialize for Outport: '<S490>/tr1_track_selection_status' */
31190 L4_MABX_B.SFunction1_o3_c4 = L4_MABX_P.tr1_track_selection_status_Y0;
31191
31192 /* SystemInitialize for Outport: '<S490>/tr1_corrected_lateral_distance' */
31193 L4_MABX_B.SFunction1_o4_dl = L4_MABX_P.tr1_corrected_lateral_distance_;
31194
31195 /* SystemInitialize for Outport: '<S490>/tr2_track_selection_status' */
31196 L4_MABX_B.SFunction1_o5_at = L4_MABX_P.tr2_track_selection_status_Y0;
31197
31198 /* SystemInitialize for Outport: '<S490>/tr2_corrected_lateral_distance' */
31199 L4_MABX_B.SFunction1_o6_n = L4_MABX_P.tr2_corrected_lateral_distance_;
31200
31201 /* SystemInitialize for Outport: '<S490>/tr3_track_selection_status' */
31202 L4_MABX_B.SFunction1_o7_gr = L4_MABX_P.tr3_track_selection_status_Y0;
31203
31204 /* SystemInitialize for Outport: '<S490>/tr3_corrected_lateral_distance' */
31205 L4_MABX_B.SFunction1_o8_cf = L4_MABX_P.tr3_corrected_lateral_distance_;
31206
31207 /* SystemInitialize for Outport: '<S490>/tr4_track_selection_status' */
31208 L4_MABX_B.SFunction1_o9_ba = L4_MABX_P.tr4_track_selection_status_Y0;
31209
31210 /* SystemInitialize for Outport: '<S490>/tr4_corrected_lateral_distance' */
31211 L4_MABX_B.SFunction1_o10_g = L4_MABX_P.tr4_corrected_lateral_distance_;
31212
31213 /* SystemInitialize for Outport: '<S490>/tr5_track_selection_status' */
31214 L4_MABX_B.SFunction1_o11_h = L4_MABX_P.tr5_track_selection_status_Y0;
31215
31216 /* SystemInitialize for Outport: '<S490>/tr5_corrected_lateral_distance' */
31217 L4_MABX_B.SFunction1_o12_hk = L4_MABX_P.tr5_corrected_lateral_distance_;
31218
31219 /* SystemInitialize for Outport: '<S490>/tr6_track_selection_status' */
31220 L4_MABX_B.SFunction1_o13_a = L4_MABX_P.tr6_track_selection_status_Y0;
31221
31222 /* SystemInitialize for Outport: '<S490>/tr6_corrected_lateral_distance' */
31223 L4_MABX_B.SFunction1_o14_g = L4_MABX_P.tr6_corrected_lateral_distance_;
31224
31225 /* SystemInitialize for Outport: '<S490>/tr7_track_selection_status' */
31226 L4_MABX_B.SFunction1_o15_c = L4_MABX_P.tr7_track_selection_status_Y0;
31227
31228 /* SystemInitialize for Outport: '<S490>/tr7_corrected_lateral_distance' */
31229 L4_MABX_B.SFunction1_o16_o = L4_MABX_P.tr7_corrected_lateral_distance_;
31230
31231 /* SystemInitialize for Outport: '<S490>/tr8_track_selection_status' */
31232 L4_MABX_B.SFunction1_o17_l = L4_MABX_P.tr8_track_selection_status_Y0;
31233
31234 /* SystemInitialize for Outport: '<S490>/tr8_corrected_lateral_distance' */
31235 L4_MABX_B.SFunction1_o18_c = L4_MABX_P.tr8_corrected_lateral_distance_;
31236
31237 /* SystemInitialize for Outport: '<S490>/tr9_track_selection_status' */
31238 L4_MABX_B.SFunction1_o19_l = L4_MABX_P.tr9_track_selection_status_Y0;
31239
31240 /* SystemInitialize for Outport: '<S490>/tr9_corrected_lateral_distance' */
31241 L4_MABX_B.SFunction1_o20_m = L4_MABX_P.tr9_corrected_lateral_distance_;
31242
31243 /* SystemInitialize for Outport: '<S490>/tr0_lateral_position' */
31244 L4_MABX_B.SFunction1_o21_e = L4_MABX_P.tr0_lateral_position_Y0;
31245
31246 /* SystemInitialize for Outport: '<S490>/tr1_lateral_position' */
31247 L4_MABX_B.SFunction1_o22_df = L4_MABX_P.tr1_lateral_position_Y0;
31248
31249 /* SystemInitialize for Outport: '<S490>/tr2_lateral_position' */
31250 L4_MABX_B.SFunction1_o23_h = L4_MABX_P.tr2_lateral_position_Y0;
31251
31252 /* SystemInitialize for Outport: '<S490>/tr3_lateral_position' */
31253 L4_MABX_B.SFunction1_o24_h = L4_MABX_P.tr3_lateral_position_Y0;
31254
31255 /* SystemInitialize for Outport: '<S490>/tr4_lateral_position' */
31256 L4_MABX_B.SFunction1_o25_f = L4_MABX_P.tr4_lateral_position_Y0;
31257
31258 /* SystemInitialize for Outport: '<S490>/tr5_lateral_position' */
31259 L4_MABX_B.SFunction1_o26_m = L4_MABX_P.tr5_lateral_position_Y0;
31260
31261 /* SystemInitialize for Outport: '<S490>/tr6_lateral_position' */
31262 L4_MABX_B.SFunction1_o27_a = L4_MABX_P.tr6_lateral_position_Y0;
31263
31264 /* SystemInitialize for Outport: '<S490>/tr7_lateral_position' */
31265 L4_MABX_B.SFunction1_o28_m = L4_MABX_P.tr7_lateral_position_Y0;
31266
31267 /* SystemInitialize for Outport: '<S490>/tr8_lateral_position' */
31268 L4_MABX_B.SFunction1_o29 = L4_MABX_P.tr8_lateral_position_Y0;
31269
31270 /* SystemInitialize for Outport: '<S490>/tr9_lateral_position' */
31271 L4_MABX_B.SFunction1_o30 = L4_MABX_P.tr9_lateral_position_Y0;
31272
31273 /* SystemInitialize for Outport: '<S490>/tr0_range' */
31274 L4_MABX_B.SFunction1_o31 = L4_MABX_P.tr0_range_Y0;
31275
31276 /* SystemInitialize for Outport: '<S490>/tr1_range' */
31277 L4_MABX_B.SFunction1_o32 = L4_MABX_P.tr1_range_Y0;
31278
31279 /* SystemInitialize for Outport: '<S490>/tr2_range' */
31280 L4_MABX_B.SFunction1_o33 = L4_MABX_P.tr2_range_Y0;
31281
31282 /* SystemInitialize for Outport: '<S490>/tr3_range' */
31283 L4_MABX_B.SFunction1_o34 = L4_MABX_P.tr3_range_Y0;
31284
31285 /* SystemInitialize for Outport: '<S490>/tr4_range' */
31286 L4_MABX_B.SFunction1_o35 = L4_MABX_P.tr4_range_Y0;
31287
31288 /* SystemInitialize for Outport: '<S490>/tr5_range' */
31289 L4_MABX_B.SFunction1_o36 = L4_MABX_P.tr5_range_Y0;
31290
31291 /* SystemInitialize for Outport: '<S490>/tr6_range' */
31292 L4_MABX_B.SFunction1_o37 = L4_MABX_P.tr6_range_Y0;
31293
31294 /* SystemInitialize for Outport: '<S490>/tr7_range' */
31295 L4_MABX_B.SFunction1_o38 = L4_MABX_P.tr7_range_Y0;
31296
31297 /* SystemInitialize for Outport: '<S490>/tr8_range' */
31298 L4_MABX_B.SFunction1_o39 = L4_MABX_P.tr8_range_Y0;
31299
31300 /* SystemInitialize for Outport: '<S490>/tr9_range' */
31301 L4_MABX_B.SFunction1_o40 = L4_MABX_P.tr9_range_Y0;
31302
31303 /* SystemInitialize for Outport: '<S490>/tr0_radar_confidence' */
31304 L4_MABX_B.SFunction1_o41 = L4_MABX_P.tr0_radar_confidence_Y0;
31305
31306 /* SystemInitialize for Outport: '<S490>/tr1_radar_confidence' */
31307 L4_MABX_B.SFunction1_o42 = L4_MABX_P.tr1_radar_confidence_Y0;
31308
31309 /* SystemInitialize for Outport: '<S490>/tr2_radar_confidence' */
31310 L4_MABX_B.SFunction1_o43 = L4_MABX_P.tr2_radar_confidence_Y0;
31311
31312 /* SystemInitialize for Outport: '<S490>/tr3_radar_confidence' */
31313 L4_MABX_B.SFunction1_o44 = L4_MABX_P.tr3_radar_confidence_Y0;
31314
31315 /* SystemInitialize for Outport: '<S490>/tr4_radar_confidence' */
31316 L4_MABX_B.SFunction1_o45 = L4_MABX_P.tr4_radar_confidence_Y0;
31317
31318 /* SystemInitialize for Outport: '<S490>/tr5_radar_confidence' */
31319 L4_MABX_B.SFunction1_o46 = L4_MABX_P.tr5_radar_confidence_Y0;
31320
31321 /* SystemInitialize for Outport: '<S490>/tr6_radar_confidence' */
31322 L4_MABX_B.SFunction1_o47 = L4_MABX_P.tr6_radar_confidence_Y0;
31323
31324 /* SystemInitialize for Outport: '<S490>/tr7_radar_confidence' */
31325 L4_MABX_B.SFunction1_o48 = L4_MABX_P.tr7_radar_confidence_Y0;
31326
31327 /* SystemInitialize for Outport: '<S490>/tr8_radar_confidence' */
31328 L4_MABX_B.SFunction1_o49 = L4_MABX_P.tr8_radar_confidence_Y0;
31329
31330 /* SystemInitialize for Outport: '<S490>/tr9_radar_confidence' */
31331 L4_MABX_B.SFunction1_o50 = L4_MABX_P.tr9_radar_confidence_Y0;
31332
31333 /* SystemInitialize for Outport: '<S490>/tr0_relative_velocitiy' */
31334 L4_MABX_B.SFunction1_o51 = L4_MABX_P.tr0_relative_velocitiy_Y0;
31335
31336 /* SystemInitialize for Outport: '<S490>/tr0_acceleration_over_ground' */
31337 L4_MABX_B.SFunction1_o52 = L4_MABX_P.tr0_acceleration_over_ground_Y0;
31338
31339 /* SystemInitialize for Outport: '<S490>/tr1_relative_velocitiy' */
31340 L4_MABX_B.SFunction1_o53 = L4_MABX_P.tr1_relative_velocitiy_Y0;
31341
31342 /* SystemInitialize for Outport: '<S490>/tr1_acceleration_over_ground' */
31343 L4_MABX_B.SFunction1_o54 = L4_MABX_P.tr1_acceleration_over_ground_Y0;
31344
31345 /* SystemInitialize for Outport: '<S490>/tr2_relative_velocitiy' */
31346 L4_MABX_B.SFunction1_o55 = L4_MABX_P.tr2_relative_velocitiy_Y0;
31347
31348 /* SystemInitialize for Outport: '<S490>/tr2_acceleration_over_ground' */
31349 L4_MABX_B.SFunction1_o56 = L4_MABX_P.tr2_acceleration_over_ground_Y0;
31350
31351 /* SystemInitialize for Outport: '<S490>/tr3_relative_velocitiy' */
31352 L4_MABX_B.SFunction1_o57 = L4_MABX_P.tr3_relative_velocitiy_Y0;
31353
31354 /* SystemInitialize for Outport: '<S490>/tr3_acceleration_over_ground' */
31355 L4_MABX_B.SFunction1_o58 = L4_MABX_P.tr3_acceleration_over_ground_Y0;
31356
31357 /* SystemInitialize for Outport: '<S490>/tr4_relative_velocitiy' */
31358 L4_MABX_B.SFunction1_o59 = L4_MABX_P.tr4_relative_velocitiy_Y0;
31359
31360 /* SystemInitialize for Outport: '<S490>/tr4_acceleration_over_ground' */
31361 L4_MABX_B.SFunction1_o60 = L4_MABX_P.tr4_acceleration_over_ground_Y0;
31362
31363 /* SystemInitialize for Outport: '<S490>/tr5_relative_velocitiy' */
31364 L4_MABX_B.SFunction1_o61 = L4_MABX_P.tr5_relative_velocitiy_Y0;
31365
31366 /* SystemInitialize for Outport: '<S490>/tr5_acceleration_over_ground' */
31367 L4_MABX_B.SFunction1_o62 = L4_MABX_P.tr5_acceleration_over_ground_Y0;
31368
31369 /* SystemInitialize for Outport: '<S490>/tr6_relative_velocitiy' */
31370 L4_MABX_B.SFunction1_o63 = L4_MABX_P.tr6_relative_velocitiy_Y0;
31371
31372 /* SystemInitialize for Outport: '<S490>/tr6_acceleration_over_ground' */
31373 L4_MABX_B.SFunction1_o64 = L4_MABX_P.tr6_acceleration_over_ground_Y0;
31374
31375 /* SystemInitialize for Outport: '<S490>/tr7_relative_velocitiy' */
31376 L4_MABX_B.SFunction1_o65 = L4_MABX_P.tr7_relative_velocitiy_Y0;
31377
31378 /* SystemInitialize for Outport: '<S490>/tr7_acceleration_over_ground' */
31379 L4_MABX_B.SFunction1_o66 = L4_MABX_P.tr7_acceleration_over_ground_Y0;
31380
31381 /* SystemInitialize for Outport: '<S490>/tr8_relative_velocitiy' */
31382 L4_MABX_B.SFunction1_o67 = L4_MABX_P.tr8_relative_velocitiy_Y0;
31383
31384 /* SystemInitialize for Outport: '<S490>/tr8_acceleration_over_ground' */
31385 L4_MABX_B.SFunction1_o68 = L4_MABX_P.tr8_acceleration_over_ground_Y0;
31386
31387 /* SystemInitialize for Outport: '<S490>/tr9_relative_velocitiy' */
31388 L4_MABX_B.SFunction1_o69 = L4_MABX_P.tr9_relative_velocitiy_Y0;
31389
31390 /* SystemInitialize for Outport: '<S490>/tr9_acceleration_over_ground' */
31391 L4_MABX_B.SFunction1_o70 = L4_MABX_P.tr9_acceleration_over_ground_Y0;
31392
31393 /* SystemInitialize for Outport: '<S490>/track_multiplexor' */
31394 L4_MABX_B.SFunction1_o71 = L4_MABX_P.track_multiplexor_Y0;
31395
31396 /* SystemInitialize for Outport: '<S490>/RX status' */
31397 L4_MABX_B.SFunction1_o72 = L4_MABX_P.RXstatus_Y0_p;
31398
31399 /* SystemInitialize for Outport: '<S490>/RX time' */
31400 L4_MABX_B.SFunction1_o73 = L4_MABX_P.RXtime_Y0_d;
31401
31402 /* SystemInitialize for Outport: '<S490>/RX delta time' */
31403 L4_MABX_B.SFunction1_o74 = L4_MABX_P.RXdeltatime_Y0_h;
31404
31405 /* End of SystemInitialize for SubSystem: '<S489>/Tracks' */
31406
31407 /* SystemInitialize for Enabled SubSystem: '<S500>/EBC1_0B' */
31408 /* SystemInitialize for Outport: '<S501>/ASREngCtrlActive' */
31409 L4_MABX_B.SFunction1_o1_fc = L4_MABX_P.ASREngCtrlActive_Y0;
31410
31411 /* SystemInitialize for Outport: '<S501>/ASRBrakeCtrlActive' */
31412 L4_MABX_B.SFunction1_o2_f1 = L4_MABX_P.ASRBrakeCtrlActive_Y0;
31413
31414 /* SystemInitialize for Outport: '<S501>/AntiLockBrakingActive' */
31415 L4_MABX_B.SFunction1_o3_hv = L4_MABX_P.AntiLockBrakingActive_Y0;
31416
31417 /* SystemInitialize for Outport: '<S501>/EBSBrakeSwitch' */
31418 L4_MABX_B.SFunction1_o4_kb = L4_MABX_P.EBSBrakeSwitch_Y0;
31419
31420 /* SystemInitialize for Outport: '<S501>/BrakePedalPos' */
31421 L4_MABX_B.SFunction1_o5_e = L4_MABX_P.BrakePedalPos_Y0;
31422
31423 /* SystemInitialize for Outport: '<S501>/ABSOffroadSwitch' */
31424 L4_MABX_B.SFunction1_o6_lb = L4_MABX_P.ABSOffroadSwitch_Y0;
31425
31426 /* SystemInitialize for Outport: '<S501>/ASROffroadSwitch' */
31427 L4_MABX_B.SFunction1_o7_gb = L4_MABX_P.ASROffroadSwitch_Y0;
31428
31429 /* SystemInitialize for Outport: '<S501>/ASRHillHolderSwitch' */
31430 L4_MABX_B.SFunction1_o8_mu = L4_MABX_P.ASRHillHolderSwitch_Y0;
31431
31432 /* SystemInitialize for Outport: '<S501>/TractionCtrlOverrideSwitch' */
31433 L4_MABX_B.SFunction1_o9_no = L4_MABX_P.TractionCtrlOverrideSwitch_Y0;
31434
31435 /* SystemInitialize for Outport: '<S501>/AccelInterlockSwitch' */
31436 L4_MABX_B.SFunction1_o10_mw = L4_MABX_P.AccelInterlockSwitch_Y0;
31437
31438 /* SystemInitialize for Outport: '<S501>/EngDerateSwitch' */
31439 L4_MABX_B.SFunction1_o11_m = L4_MABX_P.EngDerateSwitch_Y0;
31440
31441 /* SystemInitialize for Outport: '<S501>/EngAuxShutdownSwitch' */
31442 L4_MABX_B.SFunction1_o12_n = L4_MABX_P.EngAuxShutdownSwitch_Y0;
31443
31444 /* SystemInitialize for Outport: '<S501>/RemoteAccelEnableSwitch' */
31445 L4_MABX_B.SFunction1_o13_d = L4_MABX_P.RemoteAccelEnableSwitch_Y0;
31446
31447 /* SystemInitialize for Outport: '<S501>/EngRetarderSelection' */
31448 L4_MABX_B.SFunction1_o14_a = L4_MABX_P.EngRetarderSelection_Y0;
31449
31450 /* SystemInitialize for Outport: '<S501>/ABSFullyOperational' */
31451 L4_MABX_B.SFunction1_o15_m = L4_MABX_P.ABSFullyOperational_Y0;
31452
31453 /* SystemInitialize for Outport: '<S501>/EBSRedWarningSignal' */
31454 L4_MABX_B.SFunction1_o16_f = L4_MABX_P.EBSRedWarningSignal_Y0;
31455
31456 /* SystemInitialize for Outport: '<S501>/ABS_EBSAmberWarningSignal' */
31457 L4_MABX_B.SFunction1_o17_d = L4_MABX_P.ABS_EBSAmberWarningSignal_Y0;
31458
31459 /* SystemInitialize for Outport: '<S501>/ATC_ASRInformationSignal' */
31460 L4_MABX_B.SFunction1_o18_f = L4_MABX_P.ATC_ASRInformationSignal_Y0;
31461
31462 /* SystemInitialize for Outport: '<S501>/SrcAddrssOfCtrllngDvcFrBrkCntrl' */
31463 L4_MABX_B.SFunction1_o19_k = L4_MABX_P.SrcAddrssOfCtrllngDvcFrBrkCntrl;
31464
31465 /* SystemInitialize for Outport: '<S501>/HaltBrakeSwitch' */
31466 L4_MABX_B.SFunction1_o20_e = L4_MABX_P.HaltBrakeSwitch_Y0;
31467
31468 /* SystemInitialize for Outport: '<S501>/TrailerABSStatus' */
31469 L4_MABX_B.SFunction1_o21_d = L4_MABX_P.TrailerABSStatus_Y0;
31470
31471 /* SystemInitialize for Outport: '<S501>/TrctrMntdTrilerABSWarningSignal' */
31472 L4_MABX_B.SFunction1_o22_a = L4_MABX_P.TrctrMntdTrilerABSWarningSignal;
31473
31474 /* SystemInitialize for Outport: '<S501>/RX status' */
31475 L4_MABX_B.SFunction1_o23_f = L4_MABX_P.RXstatus_Y0_l;
31476
31477 /* SystemInitialize for Outport: '<S501>/RX time' */
31478 L4_MABX_B.SFunction1_o24_it = L4_MABX_P.RXtime_Y0_hq;
31479
31480 /* SystemInitialize for Outport: '<S501>/RX delta time' */
31481 L4_MABX_B.SFunction1_o25_a = L4_MABX_P.RXdeltatime_Y0_ol;
31482
31483 /* End of SystemInitialize for SubSystem: '<S500>/EBC1_0B' */
31484
31485 /* SystemInitialize for Enabled SubSystem: '<S553>/EEC2_001' */
31486 /* SystemInitialize for Outport: '<S554>/SPN558_AccelPed1LowIdlSwitch' */
31487 L4_MABX_B.SFunction1_o1_dw = L4_MABX_P.SPN558_AccelPed1LowIdlSwitch_Y0;
31488
31489 /* SystemInitialize for Outport: '<S554>/SPN559_AccelPedKickdownSw' */
31490 L4_MABX_B.SFunction1_o2_px = L4_MABX_P.SPN559_AccelPedKickdownSw_Y0;
31491
31492 /* SystemInitialize for Outport: '<S554>/SPN1437_RoadSpeedLimitStatus' */
31493 L4_MABX_B.SFunction1_o3_fk = L4_MABX_P.SPN1437_RoadSpeedLimitStatus_Y0;
31494
31495 /* SystemInitialize for Outport: '<S554>/SPN2970_AccelPed2LowIdlSwitch' */
31496 L4_MABX_B.SFunction1_o4_c = L4_MABX_P.SPN2970_AccelPed2LowIdlSwitch_Y;
31497
31498 /* SystemInitialize for Outport: '<S554>/SPN91_AccelPedPos1' */
31499 L4_MABX_B.SFunction1_o5_cd = L4_MABX_P.SPN91_AccelPedPos1_Y0;
31500
31501 /* SystemInitialize for Outport: '<S554>/SPN92_EngPercLoadAtCurrSpd' */
31502 L4_MABX_B.SFunction1_o6_fq = L4_MABX_P.SPN92_EngPercLoadAtCurrSpd_Y0;
31503
31504 /* SystemInitialize for Outport: '<S554>/SPN974_RemAccelPedalPosition' */
31505 L4_MABX_B.SFunction1_o7_j = L4_MABX_P.SPN974_RemAccelPedalPosition_Y0;
31506
31507 /* SystemInitialize for Outport: '<S554>/SPN29_AccelPedPos2' */
31508 L4_MABX_B.SFunction1_o8_is = L4_MABX_P.SPN29_AccelPedPos2_Y0;
31509
31510 /* SystemInitialize for Outport: '<S554>/SPN2979_VehAccelRateLimStatus' */
31511 L4_MABX_B.SFunction1_o9_l = L4_MABX_P.SPN2979_VehAccelRateLimStatus_Y;
31512
31513 /* SystemInitialize for Outport: '<S554>/SPN5021_MomEngMaxPwrEnFdbk' */
31514 L4_MABX_B.SFunction1_o10_ed = L4_MABX_P.SPN5021_MomEngMaxPwrEnFdbk_Y0;
31515
31516 /* SystemInitialize for Outport: '<S554>/SPN5399_DPFThermMgmtActive' */
31517 L4_MABX_B.SFunction1_o11_j = L4_MABX_P.SPN5399_DPFThermMgmtActive_Y0;
31518
31519 /* SystemInitialize for Outport: '<S554>/SPN5400_SCRThermMgmtActive' */
31520 L4_MABX_B.SFunction1_o12_i = L4_MABX_P.SPN5400_SCRThermMgmtActive_Y0;
31521
31522 /* SystemInitialize for Outport: '<S554>/SPN3357_ActMaxAvailEngPercTrq' */
31523 L4_MABX_B.SFunction1_o13_g = L4_MABX_P.SPN3357_ActMaxAvailEngPercTrq_Y;
31524
31525 /* SystemInitialize for Outport: '<S554>/SPN5398_EstPumpingPercentTorque' */
31526 L4_MABX_B.SFunction1_o14_e = L4_MABX_P.SPN5398_EstPumpingPercentTorque;
31527
31528 /* SystemInitialize for Outport: '<S554>/RX status' */
31529 L4_MABX_B.SFunction1_o15_i = L4_MABX_P.RXstatus_Y0_dn;
31530
31531 /* SystemInitialize for Outport: '<S554>/RX time' */
31532 L4_MABX_B.SFunction1_o16_p = L4_MABX_P.RXtime_Y0_p2;
31533
31534 /* SystemInitialize for Outport: '<S554>/RX delta time' */
31535 L4_MABX_B.SFunction1_o17_p = L4_MABX_P.RXdeltatime_Y0_i;
31536
31537 /* End of SystemInitialize for SubSystem: '<S553>/EEC2_001' */
31538
31539 /* SystemInitialize for Enabled SubSystem: '<S590>/CAN_TYPE1_RX_M1_C1' */
31540 /* SystemInitialize for Outport: '<S594>/EPBPCMInhibitStatusFeedback' */
31541 L4_MABX_B.SFunction1_o1_do = L4_MABX_P.EPBPCMInhibitStatusFeedback_Y0;
31542
31543 /* SystemInitialize for Outport: '<S594>/EPBPCMManualStatusFeedback' */
31544 L4_MABX_B.SFunction1_o2_hf = L4_MABX_P.EPBPCMManualStatusFeedback_Y0;
31545
31546 /* SystemInitialize for Outport: '<S594>/RX status' */
31547 L4_MABX_B.SFunction1_o3_me = L4_MABX_P.RXstatus_Y0_ij;
31548
31549 /* SystemInitialize for Outport: '<S594>/RX time' */
31550 L4_MABX_B.SFunction1_o4_g5 = L4_MABX_P.RXtime_Y0_ha;
31551
31552 /* SystemInitialize for Outport: '<S594>/RX delta time' */
31553 L4_MABX_B.SFunction1_o5_g = L4_MABX_P.RXdeltatime_Y0_jq;
31554
31555 /* End of SystemInitialize for SubSystem: '<S590>/CAN_TYPE1_RX_M1_C1' */
31556
31557 /* SystemInitialize for Enabled SubSystem: '<S591>/CAN_TYPE1_RX_M1_C2' */
31558 /* SystemInitialize for Outport: '<S595>/EPBPCMInhibitStatusFeedback' */
31559 L4_MABX_B.SFunction1_o1_ih = L4_MABX_P.EPBPCMInhibitStatusFeedback_Y_j;
31560
31561 /* SystemInitialize for Outport: '<S595>/EPBPCMManualStatusFeedback' */
31562 L4_MABX_B.SFunction1_o2_o0 = L4_MABX_P.EPBPCMManualStatusFeedback_Y0_d;
31563
31564 /* SystemInitialize for Outport: '<S595>/RX status' */
31565 L4_MABX_B.SFunction1_o3_l3 = L4_MABX_P.RXstatus_Y0_ah;
31566
31567 /* SystemInitialize for Outport: '<S595>/RX time' */
31568 L4_MABX_B.SFunction1_o4_hx = L4_MABX_P.RXtime_Y0_hs;
31569
31570 /* SystemInitialize for Outport: '<S595>/RX delta time' */
31571 L4_MABX_B.SFunction1_o5_hc = L4_MABX_P.RXdeltatime_Y0_h3;
31572
31573 /* End of SystemInitialize for SubSystem: '<S591>/CAN_TYPE1_RX_M1_C2' */
31574
31575 /* SystemInitialize for Enabled SubSystem: '<S592>/CAN_TYPE1_RX_M2_C1' */
31576 /* SystemInitialize for Outport: '<S596>/EPBPCMInhibitStatusFeedback' */
31577 L4_MABX_B.SFunction1_o1_ac = L4_MABX_P.EPBPCMInhibitStatusFeedback_Y_n;
31578
31579 /* SystemInitialize for Outport: '<S596>/EPBPCMManualStatusFeedback' */
31580 L4_MABX_B.SFunction1_o2_k = L4_MABX_P.EPBPCMManualStatusFeedback_Y0_k;
31581
31582 /* SystemInitialize for Outport: '<S596>/RX status' */
31583 L4_MABX_B.SFunction1_o3_ff = L4_MABX_P.RXstatus_Y0_lw;
31584
31585 /* SystemInitialize for Outport: '<S596>/RX time' */
31586 L4_MABX_B.SFunction1_o4_ah = L4_MABX_P.RXtime_Y0_ez;
31587
31588 /* SystemInitialize for Outport: '<S596>/RX delta time' */
31589 L4_MABX_B.SFunction1_o5_bs = L4_MABX_P.RXdeltatime_Y0_f3;
31590
31591 /* End of SystemInitialize for SubSystem: '<S592>/CAN_TYPE1_RX_M2_C1' */
31592
31593 /* SystemInitialize for Enabled SubSystem: '<S603>/PX2_LaneEdgeLeft' */
31594 /* SystemInitialize for Outport: '<S604>/PX2_LaneEdgeLeftAngle' */
31595 L4_MABX_B.SFunction1_o1_fv = L4_MABX_P.PX2_LaneEdgeLeftAngle_Y0;
31596
31597 /* SystemInitialize for Outport: '<S604>/PX2_LaneEdgeLeftNumPoints' */
31598 L4_MABX_B.SFunction1_o2_mc = L4_MABX_P.PX2_LaneEdgeLeftNumPoints_Y0;
31599
31600 /* SystemInitialize for Outport: '<S604>/PX2_LaneEdgeLeftPosition' */
31601 L4_MABX_B.SFunction1_o3_fu = L4_MABX_P.PX2_LaneEdgeLeftPosition_Y0;
31602
31603 /* SystemInitialize for Outport: '<S604>/RX status' */
31604 L4_MABX_B.SFunction1_o4_n5 = L4_MABX_P.RXstatus_Y0_es;
31605
31606 /* SystemInitialize for Outport: '<S604>/RX time' */
31607 L4_MABX_B.SFunction1_o5_h = L4_MABX_P.RXtime_Y0_im;
31608
31609 /* SystemInitialize for Outport: '<S604>/RX delta time' */
31610 L4_MABX_B.SFunction1_o6_av = L4_MABX_P.RXdeltatime_Y0_bl;
31611
31612 /* End of SystemInitialize for SubSystem: '<S603>/PX2_LaneEdgeLeft' */
31613
31614 /* SystemInitialize for Enabled SubSystem: '<S603>/PX2_LaneEdgeRight' */
31615 /* SystemInitialize for Outport: '<S605>/PX2_LaneEdgeRightAngle' */
31616 L4_MABX_B.SFunction1_o1_mz = L4_MABX_P.PX2_LaneEdgeRightAngle_Y0;
31617
31618 /* SystemInitialize for Outport: '<S605>/PX2_LaneEdgeRightNumPoints' */
31619 L4_MABX_B.SFunction1_o2_bh = L4_MABX_P.PX2_LaneEdgeRightNumPoints_Y0;
31620
31621 /* SystemInitialize for Outport: '<S605>/PX2_LaneEdgeRightPosition' */
31622 L4_MABX_B.SFunction1_o3_ey = L4_MABX_P.PX2_LaneEdgeRightPosition_Y0;
31623
31624 /* SystemInitialize for Outport: '<S605>/RX status' */
31625 L4_MABX_B.SFunction1_o4_j = L4_MABX_P.RXstatus_Y0_nw;
31626
31627 /* SystemInitialize for Outport: '<S605>/RX time' */
31628 L4_MABX_B.SFunction1_o5_al = L4_MABX_P.RXtime_Y0_lj;
31629
31630 /* SystemInitialize for Outport: '<S605>/RX delta time' */
31631 L4_MABX_B.SFunction1_o6_c = L4_MABX_P.RXdeltatime_Y0_ix;
31632
31633 /* End of SystemInitialize for SubSystem: '<S603>/PX2_LaneEdgeRight' */
31634
31635 /* SystemInitialize for Enabled SubSystem: '<S614>/PX2_MapLaneEgoLeft' */
31636 /* SystemInitialize for Outport: '<S615>/PX2_MapLaneNearPos' */
31637 L4_MABX_B.SFunction1_o1_p2 = L4_MABX_P.PX2_MapLaneNearPos_Y0;
31638
31639 /* SystemInitialize for Outport: '<S615>/PX2_MapLaneMidPos' */
31640 L4_MABX_B.SFunction1_o2_jj = L4_MABX_P.PX2_MapLaneMidPos_Y0;
31641
31642 /* SystemInitialize for Outport: '<S615>/PX2_MapLaneFarPos' */
31643 L4_MABX_B.SFunction1_o3_mi = L4_MABX_P.PX2_MapLaneFarPos_Y0;
31644
31645 /* SystemInitialize for Outport: '<S615>/PX2_EgoLaneNearPosValid' */
31646 L4_MABX_B.SFunction1_o4_br = L4_MABX_P.PX2_EgoLaneNearPosValid_Y0;
31647
31648 /* SystemInitialize for Outport: '<S615>/PX2_EgoLaneMidPosValid' */
31649 L4_MABX_B.SFunction1_o5_a = L4_MABX_P.PX2_EgoLaneMidPosValid_Y0;
31650
31651 /* SystemInitialize for Outport: '<S615>/PX2_EgoLaneFarPosValid' */
31652 L4_MABX_B.SFunction1_o6_a = L4_MABX_P.PX2_EgoLaneFarPosValid_Y0;
31653
31654 /* SystemInitialize for Outport: '<S615>/RX status' */
31655 L4_MABX_B.SFunction1_o7_d = L4_MABX_P.RXstatus_Y0_me;
31656
31657 /* SystemInitialize for Outport: '<S615>/RX time' */
31658 L4_MABX_B.SFunction1_o8_f = L4_MABX_P.RXtime_Y0_hd;
31659
31660 /* SystemInitialize for Outport: '<S615>/RX delta time' */
31661 L4_MABX_B.SFunction1_o9_k = L4_MABX_P.RXdeltatime_Y0_iv;
31662
31663 /* End of SystemInitialize for SubSystem: '<S614>/PX2_MapLaneEgoLeft' */
31664
31665 /* SystemInitialize for Enabled SubSystem: '<S616>/PX2_MapLaneEgoRight' */
31666 /* SystemInitialize for Outport: '<S617>/PX2_MapLaneNearPos' */
31667 L4_MABX_B.SFunction1_o1_lk = L4_MABX_P.PX2_MapLaneNearPos_Y0_m;
31668
31669 /* SystemInitialize for Outport: '<S617>/PX2_MapLaneMidPos' */
31670 L4_MABX_B.SFunction1_o2_jq = L4_MABX_P.PX2_MapLaneMidPos_Y0_o;
31671
31672 /* SystemInitialize for Outport: '<S617>/PX2_MapLaneFarPos' */
31673 L4_MABX_B.SFunction1_o3_ou = L4_MABX_P.PX2_MapLaneFarPos_Y0_i;
31674
31675 /* SystemInitialize for Outport: '<S617>/PX2_EgoLaneNearPosValid' */
31676 L4_MABX_B.SFunction1_o4_pe = L4_MABX_P.PX2_EgoLaneNearPosValid_Y0_p;
31677
31678 /* SystemInitialize for Outport: '<S617>/PX2_EgoLaneMidPosValid' */
31679 L4_MABX_B.SFunction1_o5_dx = L4_MABX_P.PX2_EgoLaneMidPosValid_Y0_f;
31680
31681 /* SystemInitialize for Outport: '<S617>/PX2_EgoLaneFarPosValid' */
31682 L4_MABX_B.SFunction1_o6_l = L4_MABX_P.PX2_EgoLaneFarPosValid_Y0_l;
31683
31684 /* SystemInitialize for Outport: '<S617>/RX status' */
31685 L4_MABX_B.SFunction1_o7_a = L4_MABX_P.RXstatus_Y0_lk;
31686
31687 /* SystemInitialize for Outport: '<S617>/RX time' */
31688 L4_MABX_B.SFunction1_o8_i = L4_MABX_P.RXtime_Y0_k;
31689
31690 /* SystemInitialize for Outport: '<S617>/RX delta time' */
31691 L4_MABX_B.SFunction1_o9_eu = L4_MABX_P.RXdeltatime_Y0_l3;
31692
31693 /* End of SystemInitialize for SubSystem: '<S616>/PX2_MapLaneEgoRight' */
31694
31695 /* SystemInitialize for Enabled SubSystem: '<S618>/PX2_EgoLanePos' */
31696 /* SystemInitialize for Outport: '<S619>/PX2_EgoLaneNearPosErr' */
31697 L4_MABX_B.SFunction1_o1_af = L4_MABX_P.PX2_EgoLaneNearPosErr_Y0;
31698
31699 /* SystemInitialize for Outport: '<S619>/PX2_EgoLaneMidPosErr' */
31700 L4_MABX_B.SFunction1_o2_oj = L4_MABX_P.PX2_EgoLaneMidPosErr_Y0;
31701
31702 /* SystemInitialize for Outport: '<S619>/PX2_EgoLaneFarPosErr' */
31703 L4_MABX_B.SFunction1_o3_cd = L4_MABX_P.PX2_EgoLaneFarPosErr_Y0;
31704
31705 /* SystemInitialize for Outport: '<S619>/PX2_EgoLaneNearPosValid' */
31706 L4_MABX_B.SFunction1_o4_ow = L4_MABX_P.PX2_EgoLaneNearPosValid_Y0_j;
31707
31708 /* SystemInitialize for Outport: '<S619>/PX2_EgoLaneMidPosValid' */
31709 L4_MABX_B.SFunction1_o5_d = L4_MABX_P.PX2_EgoLaneMidPosValid_Y0_m;
31710
31711 /* SystemInitialize for Outport: '<S619>/PX2_EgoLaneFarPosValid' */
31712 L4_MABX_B.SFunction1_o6_m = L4_MABX_P.PX2_EgoLaneFarPosValid_Y0_m;
31713
31714 /* SystemInitialize for Outport: '<S619>/RX status' */
31715 L4_MABX_B.SFunction1_o7_m = L4_MABX_P.RXstatus_Y0_oj;
31716
31717 /* SystemInitialize for Outport: '<S619>/RX time' */
31718 L4_MABX_B.SFunction1_o8_c5 = L4_MABX_P.RXtime_Y0_h0;
31719
31720 /* SystemInitialize for Outport: '<S619>/RX delta time' */
31721 L4_MABX_B.SFunction1_o9_eo = L4_MABX_P.RXdeltatime_Y0_at;
31722
31723 /* End of SystemInitialize for SubSystem: '<S618>/PX2_EgoLanePos' */
31724
31725 /* SystemInitialize for Enabled SubSystem: '<S628>/VEP1' */
31726 /* SystemInitialize for Outport: '<S629>/NetBatteryCurrent' */
31727 L4_MABX_B.SFunction1_o1_kt = L4_MABX_P.NetBatteryCurrent_Y0;
31728
31729 /* SystemInitialize for Outport: '<S629>/AltCurrent' */
31730 L4_MABX_B.SFunction1_o2_i3 = L4_MABX_P.AltCurrent_Y0;
31731
31732 /* SystemInitialize for Outport: '<S629>/ChargingSystemPotential' */
31733 L4_MABX_B.SFunction1_o3_hm = L4_MABX_P.ChargingSystemPotential_Y0;
31734
31735 /* SystemInitialize for Outport: '<S629>/BatteryPotential_PowerInput1' */
31736 L4_MABX_B.SFunction1_o4_dsy = L4_MABX_P.BatteryPotential_PowerInput1_Y0;
31737
31738 /* SystemInitialize for Outport: '<S629>/KeyswitchBatteryPotential' */
31739 L4_MABX_B.SFunction1_o5 = L4_MABX_P.KeyswitchBatteryPotential_Y0;
31740
31741 /* SystemInitialize for Outport: '<S629>/RX status' */
31742 L4_MABX_B.SFunction1_o6 = L4_MABX_P.RXstatus_Y0_nm;
31743
31744 /* SystemInitialize for Outport: '<S629>/RX time' */
31745 L4_MABX_B.SFunction1_o7 = L4_MABX_P.RXtime_Y0_k0;
31746
31747 /* SystemInitialize for Outport: '<S629>/RX delta time' */
31748 L4_MABX_B.SFunction1_o8 = L4_MABX_P.RXdeltatime_Y0_po;
31749
31750 /* End of SystemInitialize for SubSystem: '<S628>/VEP1' */
31751
31752 /* SystemInitialize for Enabled SubSystem: '<S455>/Decode_TPCM_CTS' */
31753 /* SystemInitialize for Outport: '<S663>/Out' */
31754 L4_MABX_B.SPN2556_ControlByte_e = (uint8_T)L4_MABX_P.Out_Y0_i;
31755 L4_MABX_B.SPN2561_NumberOfPacketsThatCanB = (uint8_T)L4_MABX_P.Out_Y0_i;
31756 L4_MABX_B.SPN2562_NextPacketNumberToBeSen = (uint8_T)L4_MABX_P.Out_Y0_i;
31757 L4_MABX_B.DataType_jt = (uint32_T)L4_MABX_P.Out_Y0_i;
31758
31759 /* End of SystemInitialize for SubSystem: '<S455>/Decode_TPCM_CTS' */
31760
31761 /* SystemInitialize for Enabled SubSystem: '<S455>/Decode_TPCM_ConnectionAbort' */
31762 /* SystemInitialize for Outport: '<S664>/Out' */
31763 L4_MABX_B.SPN2556_ControlByte_p = (uint8_T)L4_MABX_P.Out_Y0_a;
31764 L4_MABX_B.SPN2570_ConnectionAbortReason = (uint8_T)L4_MABX_P.Out_Y0_a;
31765 L4_MABX_B.DataType_e1 = (uint32_T)L4_MABX_P.Out_Y0_a;
31766
31767 /* End of SystemInitialize for SubSystem: '<S455>/Decode_TPCM_ConnectionAbort' */
31768
31769 /* SystemInitialize for Enabled SubSystem: '<S455>/Decode_TPCM_EndOfMessageAck' */
31770 /* SystemInitialize for Outport: '<S665>/Out' */
31771 L4_MABX_B.SPN2556_ControlByte_k = (uint8_T)L4_MABX_P.Out_Y0_b;
31772 L4_MABX_B.DataType_aw = (uint16_T)L4_MABX_P.Out_Y0_b;
31773 L4_MABX_B.SPN2565_TotalNumberOfPackets = (uint8_T)L4_MABX_P.Out_Y0_b;
31774 L4_MABX_B.DataType_cn = (uint32_T)L4_MABX_P.Out_Y0_b;
31775
31776 /* End of SystemInitialize for SubSystem: '<S455>/Decode_TPCM_EndOfMessageAck' */
31777
31778 /* SystemInitialize for Enabled SubSystem: '<S455>/Decode_TPCM_RTS' */
31779 /* SystemInitialize for Outport: '<S666>/Out' */
31780 L4_MABX_B.SPN2556_ControlByte = (uint8_T)L4_MABX_P.Out_Y0_p;
31781 L4_MABX_B.DataType_g1 = (uint16_T)L4_MABX_P.Out_Y0_p;
31782 L4_MABX_B.SPN2558_TotalNumberOfPackets = (uint8_T)L4_MABX_P.Out_Y0_p;
31783 L4_MABX_B.SPN2559_MaximumNumberOfPackets = (uint8_T)L4_MABX_P.Out_Y0_p;
31784 L4_MABX_B.DataType_gy = (uint32_T)L4_MABX_P.Out_Y0_p;
31785
31786 /* End of SystemInitialize for SubSystem: '<S455>/Decode_TPCM_RTS' */
31787
31788 /* SystemInitialize for Enabled SubSystem: '<S568>/CAN_TYPE1_RX_M1_C1' */
31789 /* SystemInitialize for Outport: '<S571>/byte1' */
31790 L4_MABX_B.SFunction1_o1_gy = L4_MABX_P.byte1_Y0_fn;
31791
31792 /* SystemInitialize for Outport: '<S571>/byte2' */
31793 L4_MABX_B.SFunction1_o2_nb5 = L4_MABX_P.byte2_Y0_b;
31794
31795 /* SystemInitialize for Outport: '<S571>/byte3' */
31796 L4_MABX_B.SFunction1_o3_fa = L4_MABX_P.byte3_Y0_p;
31797
31798 /* SystemInitialize for Outport: '<S571>/byte4' */
31799 L4_MABX_B.SFunction1_o4_p4 = L4_MABX_P.byte4_Y0_c;
31800
31801 /* SystemInitialize for Outport: '<S571>/byte5' */
31802 L4_MABX_B.SFunction1_o5_fv = L4_MABX_P.byte5_Y0_m;
31803
31804 /* SystemInitialize for Outport: '<S571>/byte6' */
31805 L4_MABX_B.SFunction1_o6_ot = L4_MABX_P.byte6_Y0_l;
31806
31807 /* SystemInitialize for Outport: '<S571>/byte7' */
31808 L4_MABX_B.SFunction1_o7_f = L4_MABX_P.byte7_Y0_m;
31809
31810 /* SystemInitialize for Outport: '<S571>/byte8' */
31811 L4_MABX_B.SFunction1_o8_iq = L4_MABX_P.byte8_Y0_nu;
31812
31813 /* SystemInitialize for Outport: '<S571>/RX status' */
31814 L4_MABX_B.SFunction1_o9_bs = L4_MABX_P.RXstatus_Y0_hs;
31815
31816 /* SystemInitialize for Outport: '<S571>/RX time' */
31817 L4_MABX_B.SFunction1_o10_b = L4_MABX_P.RXtime_Y0_n;
31818
31819 /* SystemInitialize for Outport: '<S571>/RX delta time' */
31820 L4_MABX_B.SFunction1_o11_f = L4_MABX_P.RXdeltatime_Y0_c;
31821
31822 /* End of SystemInitialize for SubSystem: '<S568>/CAN_TYPE1_RX_M1_C1' */
31823
31824 /* SystemInitialize for Enabled SubSystem: '<S569>/CAN_TYPE1_RX_M1_C2' */
31825 /* SystemInitialize for Outport: '<S572>/byte1' */
31826 L4_MABX_B.SFunction1_o1_cr = L4_MABX_P.byte1_Y0_d;
31827
31828 /* SystemInitialize for Outport: '<S572>/byte2' */
31829 L4_MABX_B.SFunction1_o2_bs = L4_MABX_P.byte2_Y0_a;
31830
31831 /* SystemInitialize for Outport: '<S572>/byte3' */
31832 L4_MABX_B.SFunction1_o3_g5 = L4_MABX_P.byte3_Y0_b;
31833
31834 /* SystemInitialize for Outport: '<S572>/byte4' */
31835 L4_MABX_B.SFunction1_o4_ov = L4_MABX_P.byte4_Y0_d;
31836
31837 /* SystemInitialize for Outport: '<S572>/byte5' */
31838 L4_MABX_B.SFunction1_o5_ht = L4_MABX_P.byte5_Y0_o;
31839
31840 /* SystemInitialize for Outport: '<S572>/byte6' */
31841 L4_MABX_B.SFunction1_o6_o2 = L4_MABX_P.byte6_Y0_kh;
31842
31843 /* SystemInitialize for Outport: '<S572>/byte7' */
31844 L4_MABX_B.SFunction1_o7_or = L4_MABX_P.byte7_Y0_l;
31845
31846 /* SystemInitialize for Outport: '<S572>/byte8' */
31847 L4_MABX_B.SFunction1_o8_p = L4_MABX_P.byte8_Y0_b;
31848
31849 /* SystemInitialize for Outport: '<S572>/RX status' */
31850 L4_MABX_B.SFunction1_o9_c = L4_MABX_P.RXstatus_Y0_jm;
31851
31852 /* SystemInitialize for Outport: '<S572>/RX time' */
31853 L4_MABX_B.SFunction1_o10_er = L4_MABX_P.RXtime_Y0_mi;
31854
31855 /* SystemInitialize for Outport: '<S572>/RX delta time' */
31856 L4_MABX_B.SFunction1_o11_a = L4_MABX_P.RXdeltatime_Y0_gn;
31857
31858 /* End of SystemInitialize for SubSystem: '<S569>/CAN_TYPE1_RX_M1_C2' */
31859
31860 /* SystemInitialize for Enabled SubSystem: '<S579>/CAN_TYPE1_RX_M1_C1' */
31861 /* SystemInitialize for Outport: '<S582>/byte1' */
31862 L4_MABX_B.SFunction1_o1_m0 = L4_MABX_P.byte1_Y0_k;
31863
31864 /* SystemInitialize for Outport: '<S582>/byte2' */
31865 L4_MABX_B.SFunction1_o2_bp = L4_MABX_P.byte2_Y0_c;
31866
31867 /* SystemInitialize for Outport: '<S582>/byte3' */
31868 L4_MABX_B.SFunction1_o3_kx = L4_MABX_P.byte3_Y0_i;
31869
31870 /* SystemInitialize for Outport: '<S582>/byte4' */
31871 L4_MABX_B.SFunction1_o4_lc = L4_MABX_P.byte4_Y0_b;
31872
31873 /* SystemInitialize for Outport: '<S582>/byte5' */
31874 L4_MABX_B.SFunction1_o5_oi = L4_MABX_P.byte5_Y0_g;
31875
31876 /* SystemInitialize for Outport: '<S582>/byte6' */
31877 L4_MABX_B.SFunction1_o6_f2 = L4_MABX_P.byte6_Y0_c;
31878
31879 /* SystemInitialize for Outport: '<S582>/byte7' */
31880 L4_MABX_B.SFunction1_o7_dv = L4_MABX_P.byte7_Y0_n;
31881
31882 /* SystemInitialize for Outport: '<S582>/byte8' */
31883 L4_MABX_B.SFunction1_o8_k = L4_MABX_P.byte8_Y0_a;
31884
31885 /* SystemInitialize for Outport: '<S582>/RX status' */
31886 L4_MABX_B.SFunction1_o9_o = L4_MABX_P.RXstatus_Y0_cj;
31887
31888 /* SystemInitialize for Outport: '<S582>/RX time' */
31889 L4_MABX_B.SFunction1_o10_m = L4_MABX_P.RXtime_Y0_ps;
31890
31891 /* SystemInitialize for Outport: '<S582>/RX delta time' */
31892 L4_MABX_B.SFunction1_o11_k = L4_MABX_P.RXdeltatime_Y0_gu;
31893
31894 /* End of SystemInitialize for SubSystem: '<S579>/CAN_TYPE1_RX_M1_C1' */
31895
31896 /* SystemInitialize for Enabled SubSystem: '<S580>/CAN_TYPE1_RX_M1_C2' */
31897 /* SystemInitialize for Outport: '<S583>/byte1' */
31898 L4_MABX_B.SFunction1_o1_p3 = L4_MABX_P.byte1_Y0_c;
31899
31900 /* SystemInitialize for Outport: '<S583>/byte2' */
31901 L4_MABX_B.SFunction1_o2_b1 = L4_MABX_P.byte2_Y0_k;
31902
31903 /* SystemInitialize for Outport: '<S583>/byte3' */
31904 L4_MABX_B.SFunction1_o3_eu = L4_MABX_P.byte3_Y0_iz;
31905
31906 /* SystemInitialize for Outport: '<S583>/byte4' */
31907 L4_MABX_B.SFunction1_o4_dw = L4_MABX_P.byte4_Y0_n;
31908
31909 /* SystemInitialize for Outport: '<S583>/byte5' */
31910 L4_MABX_B.SFunction1_o5_hz = L4_MABX_P.byte5_Y0_b;
31911
31912 /* SystemInitialize for Outport: '<S583>/byte6' */
31913 L4_MABX_B.SFunction1_o6_o = L4_MABX_P.byte6_Y0_i;
31914
31915 /* SystemInitialize for Outport: '<S583>/byte7' */
31916 L4_MABX_B.SFunction1_o7_h = L4_MABX_P.byte7_Y0_b;
31917
31918 /* SystemInitialize for Outport: '<S583>/byte8' */
31919 L4_MABX_B.SFunction1_o8_m = L4_MABX_P.byte8_Y0_o;
31920
31921 /* SystemInitialize for Outport: '<S583>/RX status' */
31922 L4_MABX_B.SFunction1_o9_bu = L4_MABX_P.RXstatus_Y0_dk;
31923
31924 /* SystemInitialize for Outport: '<S583>/RX time' */
31925 L4_MABX_B.SFunction1_o10_e = L4_MABX_P.RXtime_Y0_dc;
31926
31927 /* SystemInitialize for Outport: '<S583>/RX delta time' */
31928 L4_MABX_B.SFunction1_o11_n = L4_MABX_P.RXdeltatime_Y0_mq;
31929
31930 /* End of SystemInitialize for SubSystem: '<S580>/CAN_TYPE1_RX_M1_C2' */
31931
31932 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_1' */
31933 /* InitializeConditions for UnitDelay: '<S30>/Unit_Delay' */
31934 L4_MABX_DW.Unit_Delay_DSTATE_f1 = L4_MABX_P.Unit_Delay_InitialCondition_e3;
31935
31936 /* InitializeConditions for UnitDelay: '<S31>/Unit Delay' */
31937 L4_MABX_DW.UnitDelay_DSTATE_j1 = L4_MABX_P.UnitDelay_InitialCondition_n;
31938
31939 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_1' */
31940
31941 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_5' */
31942 /* InitializeConditions for UnitDelay: '<S54>/Unit_Delay' */
31943 L4_MABX_DW.Unit_Delay_DSTATE_i5 = L4_MABX_P.Unit_Delay_InitialCondition_o;
31944
31945 /* InitializeConditions for UnitDelay: '<S55>/Unit Delay' */
31946 L4_MABX_DW.UnitDelay_DSTATE_p = L4_MABX_P.UnitDelay_InitialCondition_p;
31947
31948 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_5' */
31949
31950 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_6' */
31951 /* InitializeConditions for UnitDelay: '<S60>/Unit_Delay' */
31952 L4_MABX_DW.Unit_Delay_DSTATE_l5 = L4_MABX_P.Unit_Delay_InitialCondition_le;
31953
31954 /* InitializeConditions for UnitDelay: '<S61>/Unit Delay' */
31955 L4_MABX_DW.UnitDelay_DSTATE_dr = L4_MABX_P.UnitDelay_InitialCondition_i;
31956
31957 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_6' */
31958
31959 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_3' */
31960 /* InitializeConditions for UnitDelay: '<S42>/Unit_Delay' */
31961 L4_MABX_DW.Unit_Delay_DSTATE_h41 = L4_MABX_P.Unit_Delay_InitialCondition_m;
31962
31963 /* InitializeConditions for UnitDelay: '<S43>/Unit Delay' */
31964 L4_MABX_DW.UnitDelay_DSTATE_dr4 = L4_MABX_P.UnitDelay_InitialCondition_hk;
31965
31966 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_3' */
31967
31968 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_4' */
31969 /* InitializeConditions for UnitDelay: '<S48>/Unit_Delay' */
31970 L4_MABX_DW.Unit_Delay_DSTATE_mq = L4_MABX_P.Unit_Delay_InitialCondition_bo;
31971
31972 /* InitializeConditions for UnitDelay: '<S49>/Unit Delay' */
31973 L4_MABX_DW.UnitDelay_DSTATE_hi = L4_MABX_P.UnitDelay_InitialCondition_l;
31974
31975 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_4' */
31976
31977 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_2' */
31978 /* InitializeConditions for UnitDelay: '<S36>/Unit_Delay' */
31979 L4_MABX_DW.Unit_Delay_DSTATE_je = L4_MABX_P.Unit_Delay_InitialCondition_in;
31980
31981 /* InitializeConditions for UnitDelay: '<S37>/Unit Delay' */
31982 L4_MABX_DW.UnitDelay_DSTATE_b = L4_MABX_P.UnitDelay_InitialCondition_m;
31983
31984 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_2' */
31985 }
31986}
31987
31988/* Model terminate function */
31989void L4_MABX_terminate(void)
31990{
31991 /* Terminate for Atomic SubSystem: '<S804>/CAN_TX_1000ms' */
31992
31993 /* Terminate for Enabled SubSystem: '<S824>/AIR1' */
31994
31995 /* Terminate for S-Function (rti_commonblock): '<S825>/S-Function1' */
31996
31997 /* dSPACE RTICAN TX Message Block: "AIR1" Id:419343921 */
31998 {
31999 /* ... Set the message into sleep mode */
32000 while ((rtican_type1_tq_error[1][3] = can_tp1_msg_sleep
32001 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31])) ==
32002 DSMCOM_BUFFER_OVERFLOW) ;
32003 }
32004
32005 /* End of Terminate for SubSystem: '<S824>/AIR1' */
32006
32007 /* Terminate for Enabled SubSystem: '<S832>/AMB' */
32008
32009 /* Terminate for S-Function (rti_commonblock): '<S833>/S-Function1' */
32010
32011 /* dSPACE RTICAN TX Message Block: "AMB" Id:419362048 */
32012 {
32013 /* ... Set the message into sleep mode */
32014 while ((rtican_type1_tq_error[1][4] = can_tp1_msg_sleep
32015 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500])) ==
32016 DSMCOM_BUFFER_OVERFLOW) ;
32017 }
32018
32019 /* End of Terminate for SubSystem: '<S832>/AMB' */
32020
32021 /* End of Terminate for SubSystem: '<S804>/CAN_TX_1000ms' */
32022
32023 /* Terminate for S-Function (dsa_tcpip_setup_sfcn): '<S386>/dsa_tcpip_setup' */
32024 /* Level2 S-Function Block: '<S386>/dsa_tcpip_setup' (dsa_tcpip_setup_sfcn) */
32025 {
32026 SimStruct *rts = L4_MABX_M->childSfunctions[3];
32027 sfcnTerminate(rts);
32028 }
32029
32030 /* Terminate for S-Function (dsa_tcpip_udp_sfcn): '<S387>/TCPIP_Com' */
32031 /* Level2 S-Function Block: '<S387>/TCPIP_Com' (dsa_tcpip_udp_sfcn) */
32032 {
32033 SimStruct *rts = L4_MABX_M->childSfunctions[4];
32034 sfcnTerminate(rts);
32035 }
32036
32037 /* Terminate for Atomic SubSystem: '<S804>/CAN_TX_100ms' */
32038
32039 /* Terminate for Enabled SubSystem: '<S863>/PropB_XPR_FC' */
32040
32041 /* Terminate for S-Function (rti_commonblock): '<S865>/S-Function1' */
32042
32043 /* dSPACE RTICAN TX Message Block: "PropB_XPR_FC" Id:419366140 */
32044 {
32045 /* ... Set the message into sleep mode */
32046 while ((rtican_type1_tq_error[0][4] = can_tp1_msg_sleep
32047 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC])) ==
32048 DSMCOM_BUFFER_OVERFLOW) ;
32049 }
32050
32051 /* End of Terminate for SubSystem: '<S863>/PropB_XPR_FC' */
32052
32053 /* Terminate for Enabled SubSystem: '<S864>/PropB_XPR_FC' */
32054
32055 /* Terminate for S-Function (rti_commonblock): '<S866>/S-Function1' */
32056
32057 /* dSPACE RTICAN TX Message Block: "PropB_XPR_FC" Id:419366140 */
32058 {
32059 /* ... Set the message into sleep mode */
32060 while ((rtican_type1_tq_error[1][4] = can_tp1_msg_sleep
32061 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC])) ==
32062 DSMCOM_BUFFER_OVERFLOW) ;
32063 }
32064
32065 /* End of Terminate for SubSystem: '<S864>/PropB_XPR_FC' */
32066
32067 /* Terminate for Enabled SubSystem: '<S893>/Std_PosRapidUpdate_01' */
32068
32069 /* Terminate for S-Function (rti_commonblock): '<S894>/S-Function1' */
32070
32071 /* dSPACE RTICAN TX Message Block: "Std_PosRapidUpdate_01" Id:3 */
32072 {
32073 /* ... Set the message into sleep mode */
32074 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
32075 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3])) ==
32076 DSMCOM_BUFFER_OVERFLOW) ;
32077 }
32078
32079 /* End of Terminate for SubSystem: '<S893>/Std_PosRapidUpdate_01' */
32080
32081 /* Terminate for Enabled SubSystem: '<S843>/CCVS1_00' */
32082
32083 /* Terminate for S-Function (rti_commonblock): '<S845>/S-Function1' */
32084
32085 /* dSPACE RTICAN TX Message Block: "CCVS1_00" Id:419361024 */
32086 {
32087 /* ... Set the message into sleep mode */
32088 while ((rtican_type1_tq_error[0][3] = can_tp1_msg_sleep
32089 (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100])) ==
32090 DSMCOM_BUFFER_OVERFLOW) ;
32091 }
32092
32093 /* End of Terminate for SubSystem: '<S843>/CCVS1_00' */
32094
32095 /* Terminate for Enabled SubSystem: '<S844>/CCVS1_00' */
32096
32097 /* Terminate for S-Function (rti_commonblock): '<S846>/S-Function1' */
32098
32099 /* dSPACE RTICAN TX Message Block: "CCVS1_00" Id:218034432 */
32100 {
32101 /* ... Set the message into sleep mode */
32102 while ((rtican_type1_tq_error[2][4] = can_tp1_msg_sleep
32103 (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100])) ==
32104 DSMCOM_BUFFER_OVERFLOW) ;
32105 }
32106
32107 /* End of Terminate for SubSystem: '<S844>/CCVS1_00' */
32108
32109 /* Terminate for Enabled SubSystem: '<S847>/PropB_REAX_5_E4' */
32110
32111 /* Terminate for S-Function (rti_commonblock): '<S849>/S-Function1' incorporates:
32112 * Constant: '<S847>/Constant'
32113 * Constant: '<S847>/Constant1'
32114 */
32115
32116 /* dSPACE RTICAN TX Message Block: "PropB_REAX_5_E4" Id:419429092 */
32117 {
32118 /* ... Set the message into sleep mode */
32119 while ((rtican_type1_tq_error[0][5] = can_tp1_msg_sleep
32120 (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FFFAE4])) ==
32121 DSMCOM_BUFFER_OVERFLOW) ;
32122 }
32123
32124 /* End of Terminate for SubSystem: '<S847>/PropB_REAX_5_E4' */
32125
32126 /* Terminate for Enabled SubSystem: '<S848>/PropB_REAX_5_E4' */
32127
32128 /* Terminate for S-Function (rti_commonblock): '<S850>/S-Function1' incorporates:
32129 * Constant: '<S848>/Constant'
32130 * Constant: '<S848>/Constant1'
32131 */
32132
32133 /* dSPACE RTICAN TX Message Block: "PropB_REAX_5_E4" Id:419429092 */
32134 {
32135 /* ... Set the message into sleep mode */
32136 while ((rtican_type1_tq_error[2][5] = can_tp1_msg_sleep
32137 (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0X18FFFAE4])) ==
32138 DSMCOM_BUFFER_OVERFLOW) ;
32139 }
32140
32141 /* End of Terminate for SubSystem: '<S848>/PropB_REAX_5_E4' */
32142
32143 /* Terminate for Enabled SubSystem: '<S867>/Std_COGSOGRapidUpdate_01' */
32144
32145 /* Terminate for S-Function (rti_commonblock): '<S868>/S-Function1' incorporates:
32146 * Constant: '<S867>/Constant'
32147 * Constant: '<S867>/Constant1'
32148 */
32149
32150 /* dSPACE RTICAN TX Message Block: "Std_COGSOGRapidUpdate_01" Id:7 */
32151 {
32152 /* ... Set the message into sleep mode */
32153 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
32154 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X7])) ==
32155 DSMCOM_BUFFER_OVERFLOW) ;
32156 }
32157
32158 /* End of Terminate for SubSystem: '<S867>/Std_COGSOGRapidUpdate_01' */
32159
32160 /* Terminate for Enabled SubSystem: '<S869>/EBC1_TX' */
32161
32162 /* Terminate for S-Function (rti_commonblock): '<S870>/S-Function1' */
32163
32164 /* dSPACE RTICAN TX Message Block: "EBC1_TX" Id:418382219 */
32165 {
32166 /* ... Set the message into sleep mode */
32167 while ((rtican_type1_tq_error[0][2] = can_tp1_msg_sleep
32168 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B])) ==
32169 DSMCOM_BUFFER_OVERFLOW) ;
32170 }
32171
32172 /* End of Terminate for SubSystem: '<S869>/EBC1_TX' */
32173
32174 /* End of Terminate for SubSystem: '<S804>/CAN_TX_100ms' */
32175
32176 /* Terminate for Atomic SubSystem: '<S804>/CAN_TX_10ms' */
32177
32178 /* Terminate for Enabled SubSystem: '<S906>/ACCS' */
32179
32180 /* Terminate for S-Function (rti_commonblock): '<S907>/S-Function1' */
32181
32182 /* dSPACE RTICAN TX Message Block: "ACCS" Id:418393572 */
32183 {
32184 /* ... Set the message into sleep mode */
32185 while ((rtican_type1_tq_error[1][3] = can_tp1_msg_sleep
32186 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4])) ==
32187 DSMCOM_BUFFER_OVERFLOW) ;
32188 }
32189
32190 /* End of Terminate for SubSystem: '<S906>/ACCS' */
32191
32192 /* Terminate for Enabled SubSystem: '<S914>/EEC1_00' */
32193
32194 /* Terminate for S-Function (rti_commonblock): '<S916>/S-Function1' */
32195
32196 /* dSPACE RTICAN TX Message Block: "EEC1_00" Id:217056256 */
32197 {
32198 /* ... Set the message into sleep mode */
32199 while ((rtican_type1_tq_error[1][1] = can_tp1_msg_sleep
32200 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400])) ==
32201 DSMCOM_BUFFER_OVERFLOW) ;
32202 }
32203
32204 /* End of Terminate for SubSystem: '<S914>/EEC1_00' */
32205
32206 /* Terminate for Enabled SubSystem: '<S915>/EEC1_00' */
32207
32208 /* Terminate for S-Function (rti_commonblock): '<S917>/S-Function1' */
32209
32210 /* dSPACE RTICAN TX Message Block: "EEC1_00" Id:217056256 */
32211 {
32212 /* ... Set the message into sleep mode */
32213 while ((rtican_type1_tq_error[2][3] = can_tp1_msg_sleep
32214 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400])) ==
32215 DSMCOM_BUFFER_OVERFLOW) ;
32216 }
32217
32218 /* End of Terminate for SubSystem: '<S915>/EEC1_00' */
32219
32220 /* Terminate for Enabled SubSystem: '<S918>/PropB_REAX_1_E4' */
32221
32222 /* Terminate for S-Function (rti_commonblock): '<S920>/S-Function1' incorporates:
32223 * Constant: '<S918>/Constant'
32224 * Constant: '<S918>/Constant1'
32225 */
32226
32227 /* dSPACE RTICAN TX Message Block: "PropB_REAX_1_E4" Id:419426276 */
32228 {
32229 /* ... Set the message into sleep mode */
32230 while ((rtican_type1_tq_error[0][4] = can_tp1_msg_sleep
32231 (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FFEFE4])) ==
32232 DSMCOM_BUFFER_OVERFLOW) ;
32233 }
32234
32235 /* End of Terminate for SubSystem: '<S918>/PropB_REAX_1_E4' */
32236
32237 /* Terminate for Enabled SubSystem: '<S919>/PropB_REAX_1_E4' */
32238
32239 /* Terminate for S-Function (rti_commonblock): '<S921>/S-Function1' incorporates:
32240 * Constant: '<S919>/Constant'
32241 * Constant: '<S919>/Constant1'
32242 */
32243
32244 /* dSPACE RTICAN TX Message Block: "PropB_REAX_1_E4" Id:419426276 */
32245 {
32246 /* ... Set the message into sleep mode */
32247 while ((rtican_type1_tq_error[2][5] = can_tp1_msg_sleep
32248 (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0X18FFEFE4])) ==
32249 DSMCOM_BUFFER_OVERFLOW) ;
32250 }
32251
32252 /* End of Terminate for SubSystem: '<S919>/PropB_REAX_1_E4' */
32253
32254 /* Terminate for Enabled SubSystem: '<S928>/VDC2_0B' */
32255
32256 /* Terminate for S-Function (rti_commonblock): '<S929>/S-Function1' */
32257
32258 /* dSPACE RTICAN TX Message Block: "VDC2_0B" Id:418384139 */
32259 {
32260 /* ... Set the message into sleep mode */
32261 while ((rtican_type1_tq_error[2][4] = can_tp1_msg_sleep
32262 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B])) ==
32263 DSMCOM_BUFFER_OVERFLOW) ;
32264 }
32265
32266 /* End of Terminate for SubSystem: '<S928>/VDC2_0B' */
32267
32268 /* End of Terminate for SubSystem: '<S804>/CAN_TX_10ms' */
32269
32270 /* Terminate for Atomic SubSystem: '<S804>/CAN_TX_20ms' */
32271
32272 /* Terminate for Enabled SubSystem: '<S973>/PropB_XBR_B3' */
32273
32274 /* Terminate for S-Function (rti_commonblock): '<S974>/S-Function1' */
32275
32276 /* dSPACE RTICAN TX Message Block: "PropB_XBR_B3" Id:218038707 */
32277 {
32278 /* ... Set the message into sleep mode */
32279 while ((rtican_type1_tq_error[1][2] = can_tp1_msg_sleep
32280 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3])) ==
32281 DSMCOM_BUFFER_OVERFLOW) ;
32282 }
32283
32284 /* End of Terminate for SubSystem: '<S973>/PropB_XBR_B3' */
32285
32286 /* Terminate for Enabled SubSystem: '<S975>/PropB_Bendix_2C2_XPR' */
32287
32288 /* Terminate for S-Function (rti_commonblock): '<S976>/S-Function1' */
32289
32290 /* dSPACE RTICAN TX Message Block: "PropB_Bendix_2C2_XPR" Id:218060389 */
32291 {
32292 /* ... Set the message into sleep mode */
32293 while ((rtican_type1_tq_error[1][2] = can_tp1_msg_sleep
32294 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665])) ==
32295 DSMCOM_BUFFER_OVERFLOW) ;
32296 }
32297
32298 /* End of Terminate for SubSystem: '<S975>/PropB_Bendix_2C2_XPR' */
32299
32300 /* Terminate for Enabled SubSystem: '<S983>/Std_OdometryData' */
32301
32302 /* Terminate for S-Function (rti_commonblock): '<S984>/S-Function1' */
32303
32304 /* dSPACE RTICAN TX Message Block: "Std_OdometryData" Id:10 */
32305 {
32306 /* ... Set the message into sleep mode */
32307 while ((rtican_type1_tq_error[2][1] = can_tp1_msg_sleep
32308 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA])) ==
32309 DSMCOM_BUFFER_OVERFLOW) ;
32310 }
32311
32312 /* End of Terminate for SubSystem: '<S983>/Std_OdometryData' */
32313
32314 /* End of Terminate for SubSystem: '<S804>/CAN_TX_20ms' */
32315
32316 /* Terminate for Atomic SubSystem: '<S804>/CAN_TX_5000ms' */
32317
32318 /* Terminate for Enabled SubSystem: '<S998>/RQST_13_E4' */
32319
32320 /* Terminate for S-Function (rti_commonblock): '<S1000>/S-Function1' */
32321
32322 /* dSPACE RTICAN TX Message Block: "RQST_13_E4" Id:417993700 */
32323 {
32324 /* ... Set the message into sleep mode */
32325 while ((rtican_type1_tq_error[2][4] = can_tp1_msg_sleep
32326 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4])) ==
32327 DSMCOM_BUFFER_OVERFLOW) ;
32328 }
32329
32330 /* End of Terminate for SubSystem: '<S998>/RQST_13_E4' */
32331
32332 /* End of Terminate for SubSystem: '<S804>/CAN_TX_5000ms' */
32333
32334 /* Terminate for Atomic SubSystem: '<S804>/CAN_TX_50ms' */
32335
32336 /* Terminate for Enabled SubSystem: '<S1009>/CCVS1_E3' */
32337
32338 /* Terminate for S-Function (rti_commonblock): '<S1011>/S-Function1' */
32339
32340 /* dSPACE RTICAN TX Message Block: "CCVS1_E3" Id:419361251 */
32341 {
32342 /* ... Set the message into sleep mode */
32343 while ((rtican_type1_tq_error[1][3] = can_tp1_msg_sleep
32344 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3])) ==
32345 DSMCOM_BUFFER_OVERFLOW) ;
32346 }
32347
32348 /* End of Terminate for SubSystem: '<S1009>/CCVS1_E3' */
32349
32350 /* Terminate for Enabled SubSystem: '<S1010>/TC1_03_05' */
32351
32352 /* Terminate for S-Function (rti_commonblock): '<S1012>/S-Function1' */
32353
32354 /* dSPACE RTICAN TX Message Block: "TC1_03_05" Id:201392901 */
32355 {
32356 /* ... Set the message into sleep mode */
32357 while ((rtican_type1_tq_error[0][0] = can_tp1_msg_sleep
32358 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305])) ==
32359 DSMCOM_BUFFER_OVERFLOW) ;
32360 }
32361
32362 /* End of Terminate for SubSystem: '<S1010>/TC1_03_05' */
32363
32364 /* End of Terminate for SubSystem: '<S804>/CAN_TX_50ms' */
32365
32366 /* Terminate for Enabled SubSystem: '<S1022>/Std_SystemTime_01' */
32367
32368 /* Terminate for S-Function (rti_commonblock): '<S1024>/S-Function1' incorporates:
32369 * Constant: '<S1022>/Constant'
32370 * Constant: '<S1022>/Constant1'
32371 */
32372
32373 /* dSPACE RTICAN TX Message Block: "Std_SystemTime_01" Id:5 */
32374 {
32375 /* ... Set the message into sleep mode */
32376 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
32377 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X5])) ==
32378 DSMCOM_BUFFER_OVERFLOW) ;
32379 }
32380
32381 /* End of Terminate for SubSystem: '<S1022>/Std_SystemTime_01' */
32382
32383 /* Terminate for Triggered SubSystem: '<S1017>/CAN_TYPE1_TX_M1_C1' */
32384
32385 /* Terminate for S-Function (rti_commonblock): '<S1019>/S-Function1' */
32386
32387 /* dSPACE RTICAN TX Message Block: "TX Message" Id:418184965 */
32388 {
32389 /* ... Set the message into sleep mode */
32390 while ((rtican_type1_tq_error[0][1] = can_tp1_msg_sleep
32391 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05])) ==
32392 DSMCOM_BUFFER_OVERFLOW) ;
32393 }
32394
32395 /* End of Terminate for SubSystem: '<S1017>/CAN_TYPE1_TX_M1_C1' */
32396
32397 /* Terminate for Triggered SubSystem: '<S1018>/CAN_TYPE1_TX_M1_C1' */
32398
32399 /* Terminate for S-Function (rti_commonblock): '<S1020>/S-Function1' */
32400
32401 /* dSPACE RTICAN TX Message Block: "TX Message" Id:418119429 */
32402 {
32403 /* ... Set the message into sleep mode */
32404 while ((rtican_type1_tq_error[0][1] = can_tp1_msg_sleep
32405 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05])) ==
32406 DSMCOM_BUFFER_OVERFLOW) ;
32407 }
32408
32409 /* End of Terminate for SubSystem: '<S1018>/CAN_TYPE1_TX_M1_C1' */
32410
32411 /* Terminate for S-Function (rti_commonblock): '<S1025>/S-Function1' */
32412
32413 /* disable digital output channel 4 on port 1 *
32414 * (set to high-impedance), when the simulation terminates */
32415 dio_tp4_digout_init(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH4,
32416 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE);
32417
32418 /* Terminate for S-Function (rti_commonblock): '<S1026>/S-Function1' */
32419
32420 /* disable digital output channel 2 on port 1 *
32421 * (set to high-impedance), when the simulation terminates */
32422 dio_tp4_digout_init(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH2,
32423 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE);
32424
32425 /* Terminate for S-Function (rti_commonblock): '<S1027>/S-Function1' */
32426
32427 /* disable digital output channel 1 on port 1 *
32428 * (set to high-impedance), when the simulation terminates */
32429 dio_tp4_digout_init(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH1,
32430 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE);
32431
32432 /* Terminate for S-Function (rti_commonblock): '<S1028>/S-Function1' */
32433
32434 /* disable digital output channel 3 on port 1 *
32435 * (set to high-impedance), when the simulation terminates */
32436 dio_tp4_digout_init(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH3,
32437 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE);
32438
32439 /* Terminate for S-Function (rti_commonblock): '<S1029>/S-Function1' */
32440
32441 /* disable digital output channel 1 on port 2 *
32442 * (set to high-impedance), when the simulation terminates */
32443 dio_tp4_pwm_init(DIO_TP4_1_MODULE_ADDR, 2, DIO_TP4_MASK_CH1,
32444 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE, DIO_TP4_TIMING_RANGE2,
32445 DIO_TP4_PWM);
32446
32447 /* Terminate for S-Function (rti_commonblock): '<S1030>/S-Function1' */
32448
32449 /* disable digital output channel 2 on port 2 *
32450 * (set to high-impedance), when the simulation terminates */
32451 dio_tp4_pwm_init(DIO_TP4_1_MODULE_ADDR, 2, DIO_TP4_MASK_CH2,
32452 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE, DIO_TP4_TIMING_RANGE2,
32453 DIO_TP4_PWM);
32454
32455 /* Terminate for S-Function (rti_commonblock): '<S394>/S-Function1' incorporates:
32456 * SubSystem: '<S386>/Background_Task'
32457 */
32458 L4_MAB_Background_Task_Term();
32459
32460 /* End of Terminate for S-Function (rti_commonblock): '<S394>/S-Function1' */
32461
32462 /* Terminate for S-Function (rti_commonblock): '<S400>/S-Function1' incorporates:
32463 * SubSystem: '<S386>/Interrupt_Task'
32464 */
32465 L4_MABX_Interrupt_Task_Term();
32466
32467 /* End of Terminate for S-Function (rti_commonblock): '<S400>/S-Function1' */
32468
32469 /* Terminate for S-Function (rti_commonblock): '<S446>/S-Function1' */
32470
32471 /* dSPACE RTICAN STD Srvc-Message Block */
32472 {
32473 /* ... Set the message into sleep mode */
32474 while ((rtican_type1_tq_error[0][0] = can_tp1_msg_sleep
32475 (CANTP1_RX_SPMSG_M1_C1_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
32476 }
32477
32478 /* dSPACE RTICAN XTD Srvc-Message Block */
32479 {
32480 /* ... Set the message into sleep mode */
32481 while ((rtican_type1_tq_error[0][1] = can_tp1_msg_sleep
32482 (CANTP1_RX_SPMSG_M1_C1_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
32483 }
32484
32485 /* Terminate for S-Function (rti_commonblock): '<S447>/S-Function1' */
32486
32487 /* dSPACE RTICAN STD Srvc-Message Block */
32488 {
32489 /* ... Set the message into sleep mode */
32490 while ((rtican_type1_tq_error[0][0] = can_tp1_msg_sleep
32491 (CANTP1_RX_SPMSG_M1_C2_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
32492 }
32493
32494 /* dSPACE RTICAN XTD Srvc-Message Block */
32495 {
32496 /* ... Set the message into sleep mode */
32497 while ((rtican_type1_tq_error[0][1] = can_tp1_msg_sleep
32498 (CANTP1_RX_SPMSG_M1_C2_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
32499 }
32500
32501 /* Terminate for S-Function (rti_commonblock): '<S448>/S-Function1' */
32502
32503 /* dSPACE RTICAN STD Srvc-Message Block */
32504 {
32505 /* ... Set the message into sleep mode */
32506 while ((rtican_type1_tq_error[1][0] = can_tp1_msg_sleep
32507 (CANTP1_RX_SPMSG_M2_C1_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
32508 }
32509
32510 /* dSPACE RTICAN XTD Srvc-Message Block */
32511 {
32512 /* ... Set the message into sleep mode */
32513 while ((rtican_type1_tq_error[1][1] = can_tp1_msg_sleep
32514 (CANTP1_RX_SPMSG_M2_C1_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
32515 }
32516
32517 /* Terminate for S-Function (rti_commonblock): '<S449>/S-Function1' */
32518
32519 /* dSPACE RTICAN STD Srvc-Message Block */
32520 {
32521 /* ... Set the message into sleep mode */
32522 while ((rtican_type1_tq_error[1][0] = can_tp1_msg_sleep
32523 (CANTP1_RX_SPMSG_M2_C2_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
32524 }
32525
32526 /* dSPACE RTICAN XTD Srvc-Message Block */
32527 {
32528 /* ... Set the message into sleep mode */
32529 while ((rtican_type1_tq_error[1][1] = can_tp1_msg_sleep
32530 (CANTP1_RX_SPMSG_M2_C2_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
32531 }
32532
32533 /* Terminate for S-Function (rti_commonblock): '<S450>/S-Function1' */
32534
32535 /* dSPACE RTICAN STD Srvc-Message Block */
32536 {
32537 /* ... Set the message into sleep mode */
32538 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
32539 (CANTP1_RX_SPMSG_M3_C1_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
32540 }
32541
32542 /* dSPACE RTICAN XTD Srvc-Message Block */
32543 {
32544 /* ... Set the message into sleep mode */
32545 while ((rtican_type1_tq_error[2][1] = can_tp1_msg_sleep
32546 (CANTP1_RX_SPMSG_M3_C1_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
32547 }
32548
32549 /* Terminate for S-Function (rti_commonblock): '<S451>/S-Function1' */
32550
32551 /* dSPACE RTICAN STD Srvc-Message Block */
32552 {
32553 /* ... Set the message into sleep mode */
32554 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
32555 (CANTP1_RX_SPMSG_M3_C2_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
32556 }
32557
32558 /* dSPACE RTICAN XTD Srvc-Message Block */
32559 {
32560 /* ... Set the message into sleep mode */
32561 while ((rtican_type1_tq_error[2][1] = can_tp1_msg_sleep
32562 (CANTP1_RX_SPMSG_M3_C2_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
32563 }
32564}
32565